Se você quiser sempre completar os nomes de diretório apenas para ls
, poderá colocar isso em .zshrc
:
compdef _dirs ls
Você pode fazer coisas mais extravagantes com o "novo" sistema de completação (inicializado por compinit
) jogando com estilos . Dependendo das suas opções, você pode precisar de unalias ls
. Então, para completar apenas diretórios na linha de comando ls
:
zstyle ':completion:*:ls:*' file-patterns '*(/):directories'
Você pode completar apenas diretórios por padrão, mas preencha qualquer nome de arquivo se nenhum diretório corresponder:
zstyle ':completion:*:ls:*' file-patterns '%p:globbed-files' '*(/):directories'
Você também pode definir uma ligação de chave para completar apenas diretórios, que você pode usar em qualquer lugar.
zle -C complete_dirs .complete-word _dirs
bindkey '^X/' complete_dirs