Conclusões da guia Zsh que não funcionam como desejado para caminhos parciais

15

Eu quero o preenchimento fuzzy insensível a maiúsculas e minúsculas para arquivos e diretórios em zsh . Depois de ler o manual por algumas horas, foi isso que eu criei:

zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'

Além disso, quero pressionar TAB uma vez para exibir possíveis conclusões, modificando apenas o que eu digitei se houver exatamente uma conclusão. Em seguida, pressionar TAB uma segunda vez deve me colocar no modo "conclusão do menu". Com base nos manuais, descobri isso:

zstyle ':completion:*' menu select

Agora tudo funciona como deveria, exceto em uma circunstância. Eu tenho duas pastas Desktop e .rstudio-desktop no meu diretório pessoal. Como tenho setopt globdots , espero digitar o seguinte:

$ cd ~/dktop<TAB>

para deixar meu comando como inserido e exibir como candidatos de conclusão Desktop e .rstudio-desktop . Em vez disso, remove dktop , deixando-me com o seguinte:

$ cd ~/

Examinei todos os manuais, guias, perguntas sobre o Stack Exchange e várias outras fontes relevantes. Mas o que eu fizer, não posso fazer isso funcionar.

Curiosamente, se eu estiver no diretório home e digitar o seguinte, tudo funcionará como esperado:

$ cd dktop<TAB>

Ou seja, é apenas um problema com segmentos de caminhos não principais (e você pode ver com C-x h que isso corresponde à tag directories em vez da tag local-directories que está sendo usada).

Para facilitar a reprodutibilidade, aqui é um ~/.zshrc que reproduzirá a situação e o comportamento descritos acima (testado em um nova máquina virtual El Capitan com zsh da Homebrew).

    
por Radon Rosborough 15.12.2016 / 03:14

1 resposta

0

Uma solução possível é fazer:

bindkey "^I" expand-word

Isso fará com que a guia expanda ~/ para o caminho absoluto.

    
por 01.05.2018 / 20:07