Pregunta:
¿Y cómo también autocompleta los alias?
Respuesta:
Dependiendo del comando:
- Alguien puede haber escrito una función para generar posibles finalizaciones de argumentos, incluidas opciones. Encontrará funciones para algunos comandos en
/etc/bash_completion.d/*
(o en una ubicación diferente en algunos sistemas). Estas funciones están registradas con la funcióncomplete
incorporada (por ejemplo,complete -F _find find
le dice a bash que llame a la función_find
cuando presiona Tab en un comando defind
). Usan elcompgen
incorporado para decirle a bash "aquí están las posibles terminaciones". - Para algunos comandos, bash llamará al comando con el argumento
--help
y analizará la salida. Dichos comandos se pueden registrar con el integradocomplete
, por ejemplo,complete -F _longopt ls
._longopt
es de hecho una función de generación de finalización, que pasa a analizar la salida de un comando en lugar de usar una lista fija. (Hay otras funciones de finalización más especializadas que analizan la salida de un comando para generar posibles finalizaciones; consulte/etc/bash_completion.d/*
para ver ejemplos). - Para cosas como los alias, la función de finalización los busca en las tablas internas de bash. El integrado
complete
tiene opciones para eso, por ejemplo,-A
para alias.