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 TABuma vez para exibir possíveis conclusões, modificando apenas o que eu digitei se houver exatamente uma conclusão. Pressionar TABuma 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 Desktope .rstudio-desktopno 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 Desktope .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 hisso isso corresponde à directoriesmarca e não à local-directoriesmarca que está sendo usada).
Para facilitar a reprodutibilidade, aqui está um ~/.zshrcque reproduzirá a situação e o comportamento descritos acima (testados em uma nova máquina virtual El Capitan zshda Homebrew).
zsh 5.3.1OS X, o problema é reproduzido. É interessante que exista uma diferença entre os sistemas operacionais.
zsh 5.3.1em dianteArch Linux.cd ~/dktop<tab>rendimentoscd ~/Desktop.