Ich möchte, dass bei Dateien und Verzeichnissen die Groß- und Kleinschreibung nicht berücksichtigt wird zsh
. Nach ein paar Stunden Lesen des Handbuchs habe ich mir Folgendes ausgedacht:
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\_}'
Außerdem möchte ich TAB
einmal drücken , um mögliche Abschlüsse anzuzeigen, und nur ändern, was ich eingegeben habe, wenn es genau einen Abschluss gibt. Wenn TAB
ich dann ein zweites Mal drücke, sollte ich in den Modus "Menü vervollständigen" wechseln. Basierend auf den Handbüchern habe ich Folgendes gefunden:
zstyle ':completion:*' menu select
Jetzt funktioniert alles wie es sollte, außer in einem Fall. Ich habe zwei Ordner Desktop
und .rstudio-desktop
in meinem Home-Verzeichnis. Da ich das setopt globdots
getan habe , erwarte ich Folgendes:
$ cd ~/dktop<TAB>
mein Befehl wie eingegeben und angezeigt werden als Vervollständigungskandidaten zu verlassen Desktop
und .rstudio-desktop
. Stattdessen wird es entfernt dktop
, sodass ich Folgendes erhalte:
$ cd ~/
Ich habe mir alle relevanten Handbücher, Anleitungen, Stapelaustauschfragen und verschiedene andere Quellen angesehen. Aber was auch immer ich tue, ich kann das nicht zum Laufen bringen.
Interessanterweise funktioniert alles wie erwartet , wenn ich mich im Home-Verzeichnis befinde und Folgendes eingebe:
$ cd dktop<TAB>
Das heißt, es ist nur ein Problem mit nicht führenden Pfadsegmenten (und Sie können sehen, C-x h
dass dies dem directories
Tag und nicht dem verwendeten local-directories
Tag entspricht).
Um die Reproduzierbarkeit zu vereinfachen, wird hier eine ~/.zshrc
Beschreibung der oben beschriebenen Situation und des Verhaltens aufgeführt (getestet auf einer neuen virtuellen El Capitan-Maschine mit zsh
von Homebrew).
zsh 5.3.1
OS X reproduziert sich das Problem. Es ist interessant, dass es einen Unterschied zwischen den Betriebssystemen gibt.
zsh 5.3.1
aufArch Linux
.cd ~/dktop<tab>
Ausbeutencd ~/Desktop
.