Impedir que o zsh conclua os diretórios pais

Impedir que o zsh conclua os diretórios pais

Estou usando o zsh com o zshrc do grml como base. Como parte do meu trabalho, acesso regularmente o caminho da rede (por exemplo, NFS. AFS).

Se eu escrever /a/long/network/path/on/the/other/side/of/the/world, pressione TAB duas vezes, será dolorosamente lento, pois o zsh começa a pesquisar em /a/ então /a/long /a/long/ rede etc...

Ao mesmo tempo, executar ls /a/long/network/path/on/the/other/side/of/the/world retorna em um segundo. Então, eu gostaria de dizer ao zsh para parar de me questionar. (Se eu escrever /usr/src/linuxx/ e então pressionar tab ele descobre que eu queria /usr/src/linux/ e isso é legal porque a rede me faz mais mal do que bem). Gostaria de preencher automaticamente apenas "no final" após a última barra.

Às vezes, estou usando um cd de solução alternativa no diretório e, em seguida, uso o preenchimento automático. Certamente deve haver uma maneira melhor.

Como posso conseguir isso?

Responder1

Esse tipo de comportamento é configurado atravésestilos(exceto alguns fundamentos que possuem opções). Você vai querer desligarpath-completion.

Por padrão, a conclusão do nome do arquivo examina todos os componentes de um caminho para ver se há conclusões desse componente. Por exemplo, /u/b/zpode ser preenchido em /usr/bin/zsh. Definir explicitamente esse estilo como falso inibe esse comportamento para componentes de caminho até /antes do cursor

zstyle ':completion:*' path-completion false

Você pode querer ativaraccept-exact-dirsem vez de. Com path-completionleft ativado e accept-exact-dirsativado, o zsh só tentará a conclusão de componentes do caminho diferentes do último se o caminho não existir.

zstyle ':completion:*' accept-exact-dirs true

informação relacionada