Eu quero conclusão difusa que não diferencia maiúsculas de minúsculas para arquivos e diretórios zsh
. Depois de ler o manual por algumas horas, é 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. Pressionar TAB
uma segunda vez deve me colocar no modo "conclusão do menu". Com base nos manuais, eu vim com 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. Desde que eu tenho setopt globdots
, espero digitar o seguinte:
$ cd ~/dktop<TAB>
para deixar meu comando como digitado e exibir como candidatos à conclusão Desktop
e .rstudio-desktop
. Em vez disso, remove dktop
, deixando-me o seguinte:
$ cd ~/
Analisei todos os manuais, guias, perguntas sobre o Stack Exchange relevantes e várias outras fontes. Mas o que quer que eu faça, não posso fazer isso funcionar.
Curiosamente, se eu estiver no diretório inicial e digite o seguinte, tudo funcionará conforme o esperado:
$ cd dktop<TAB>
Ou seja, é apenas um problema com segmentos de caminhos não principais (e você pode ver com C-x h
isso isso corresponde à directories
marca e não à local-directories
marca que está sendo usada).
Para facilitar a reprodutibilidade, aqui está um ~/.zshrc
que reproduzirá a situação e o comportamento descritos acima (testados em uma nova máquina virtual El Capitan zsh
da Homebrew).
zsh 5.3.1
OS X, o problema é reproduzido. É interessante que exista uma diferença entre os sistemas operacionais.
zsh 5.3.1
em dianteArch Linux
.cd ~/dktop<tab>
rendimentoscd ~/Desktop
.