Je souhaite une exécution floue insensible à la casse pour les fichiers et répertoires dans zsh
. Après avoir lu le manuel pendant quelques heures, voici ce que j'ai trouvé:
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\_}'
De plus, je veux appuyer TAB
une fois pour afficher les achèvements possibles, ne modifiant ce que j'ai tapé que s'il y a exactement un achèvement. Ensuite, TAB
une deuxième pression devrait me mettre en mode "achèvement de menu". Sur la base des manuels, j'ai trouvé ceci:
zstyle ':completion:*' menu select
Maintenant, tout fonctionne comme il se doit, sauf dans une circonstance. J'ai deux dossiers Desktop
et .rstudio-desktop
dans mon répertoire personnel. Depuis que je l'ai setopt globdots
, je m'attends à taper ce qui suit:
$ cd ~/dktop<TAB>
pour laisser mon commandement tel qu'il est entré et afficher comme candidats à l'achèvement Desktop
et .rstudio-desktop
. Au lieu de cela, il supprime dktop
, me laissant avec ce qui suit:
$ cd ~/
J'ai regardé tous les manuels, guides, questions Stack Exchange pertinents et diverses autres sources. Mais quoi que je fasse, je ne peux pas faire fonctionner ça.
Fait intéressant, cependant, si je suis dans le répertoire personnel et que je tape ce qui suit, tout fonctionne comme prévu:
$ cd dktop<TAB>
Autrement dit, ce n'est qu'un problème avec les segments de chemins non principaux (et vous pouvez voir avec C-x h
cela que cela correspond à la directories
balise plutôt qu'à la local-directories
balise utilisée).
Pour une reproductibilité facile, voici un ~/.zshrc
qui reproduira la situation et le comportement décrits ci-dessus (testé sur une nouvelle machine virtuelle El Capitan avec zsh
de Homebrew).
zsh 5.3.1
OS X, le problème se reproduit. Il est intéressant de noter qu'il existe une différence entre les systèmes d'exploitation.
zsh 5.3.1
leArch Linux
.cd ~/dktop<tab>
rendementscd ~/Desktop
.