Zsh autocompleta el command ls solo con directorys

Supongamos que tengo los siguientes files y directorys:

% ls bui00293 buiawer builds/ buiowpe/ 

Quiero enumerar el contenido de las builds

 % ls bui[TAB] 

Sin embargo, Zsh muestra las opciones con todos los files y directorys anteriores. Lo que quiero es la autocompletación del command cd de zsh, es decir. solo autocomplete con nombres de directory.

Si siempre quiere completar los nombres de directory para ls , puede poner esto en su .zshrc :

 compdef _dirs ls 

Puede hacer cosas más elegantes con el sistema de finalización "nuevo" (inicializado por compinit ) jugando con styles . Dependiendo de sus opciones, es posible que necesite unalias ls . Luego, solo para completar directorys en la línea de command ls :

 zstyle ':completion:*:ls:*' file-patterns '*(/):directories' 

Puede completar solo directorys de forma pnetworkingeterminada, pero complete cualquier nombre de file si ningún directory coincide:

 zstyle ':completion:*:ls:*' file-patterns '%p:globbed-files' '*(/):directories' 

También puede definir un enlace de key para completar solo directorys, que luego puede usar en cualquier lugar.

 zle -C complete_dirs .complete-word _dirs bindkey '^X/' complete_dirs