Esta pregunta es bastante similar a esta , pero no puedo entender la solución. También conozco este tutorial , pero aún no puedo entender lo que estoy haciendo mal.
Estoy tratando de completar automáticamente la lista de directorios que se encuentran en /something/:
$ ls /something/
One Other Three
de una manera que esto sucederá:
$ hi [TAB]
One Other Three
$ hi O[TAB]
One Other
Solo cuando la primera palabra es hiy no solo adentro /something/.
Esto es lo que estoy haciendo en .profile:
_codeComplete()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen `ls /something/` -- $cur) )
}
complete -F _codeComplete "hi "
bash
filenames
autocomplete
Donovan
fuente
fuente

completecomando si aún no lo sabe y está buscandoautocompleteotab-completion... Este fue el primer lugar donde encontré el nombre del comando, y para lo que necesitaba arreglarloejecten la actualización a Ubuntu 14.04 ($ complete -p ls->complete -F _longopt ls, entonces la solución fuecomplete -F _longopt ejectPermítanme tratar de mejorar la respuesta aceptada.
La respuesta original fallará con los nombres de archivo que contienen espacios en blanco. Después de investigar un poco, me doy cuenta de que puede cambiar el separador de entrada al final de la línea:
haciendo que la función maneje espacios correctamente.
fuente
Aquí hay una versión que no solo maneja espacios, sino que también los escapa:
(Basado en las adelfas 's y Eduardo Almeida dos Santos ' respuestas, pero con escapar a lo dispuesto por antak en SO: /programming//a/11536437/1536933 )
fuente
fuente