A medida que agrego mis scripts cada vez más a los archivos composer.json
, sería útil tener el autocompletado para el comando composer
en bash
. Mi pregunta en Twitter no dio una solución inmediata, y como ya estaba haciendo algo similar para Phing
, me arremangué y escribí mi solución.
Comenzamos creando un nuevo archivo de finalización de bash llamado composer
en el directorio bash_completion.d
(el archivo necesita derechos de ejecución). Este directorio generalmente se encuentra en /etc/bash_completion.d/
, pero en OS X con Homebrew se encuentra en /usr/local/etc/bash_completion.d/
(suponiendo que ya haya instalado brew install bash-complete
).
Aquí está el archivo:
(Tenga en cuenta que __ltrim_colon_completions
solo se admite en versiones recientes de bash-complete
, por lo que es posible que deba eliminar esta línea).
Para obtener una lista de comandos para composer, creamos una lista de palabras para la opción -W para compgen
ejecutando composer --no-ansi
y luego usamos AWK para eliminar todo lo que no es un comando. También creamos una lista de argumentos de bandera separada cuando el usuario presiona la tecla Tab después de ingresar el guión.
Al ejecutar el composer {cmd} -h --no-ansi
, completamos automáticamente los indicadores de cualquier subcomando y, usando tr
y grep
, restringimos la lista a solo palabras que comienzan con un guión.
¡Ahora presionando Tab después del compositor, bash completará automáticamente los comandos incorporados del compositor y los scripts de usuario!

Como puede ver en este ejemplo, además de los comandos integrados como dump-autoload
y show
, se show
mis propios scripts, incluidos apiary-fetch
y otros.
¡Esto es muy útil cuando la memoria me falla!