Wie kann ich mit der Tab-Vervollständigung von zsh Groß- und Kleinschreibungsfehler für Verzeichnisse und Dateien beheben?

Wie kann ich mit der Tab-Vervollständigung von zsh Groß- und Kleinschreibungsfehler für Verzeichnisse und Dateien beheben?

Ich bin bei einer früheren Arch-Installation vollständig auf zsh umgestiegen und war BEGEISTERT davon, vor allem, weil Arch eine der Distributionen ist, die Ihre Dokumente, Downloads, Musik und ähnliche Verzeichnisse in Ihrem ~-Verzeichnis groß schreiben. Da ich das nicht gewohnt war und die Tab-Vervollständigung für fast alles im Terminal verwende, war zsh im Vergleich zu bash wie der Himmel für mich … Ich schwöre, diese Funktion war früher automatisch aktiv, denn ich kann mich nicht daran erinnern, irgendetwas anpassen zu müssen, damit es so funktioniert. Wahrscheinlich bin ich zufällig darauf gestoßen. xD Aber ich hätte diese Funktion sehr gern auf meinem neuen PC mit zsh als Haupt-Shell wiederhergestellt und falls jemand weiß, wie das geht, wäre ich für eine Antwort sehr dankbar. Ich habe versucht, jede Option in der Vervollständigungskonfiguration zu aktivieren, aber das schien nicht zu funktionieren … also bin ich hier her gekommen.

PS: Früher war ich mit meinem Linux-Know-how viel besser vertraut und meine Kenntnisse sind mittlerweile veraltet... Ich versuche, das zu ändern... (so weit wie möglich ohne die Umschalttaste zu verwenden... haha)

Antwort1

Kurz zusammengefasstzsh: Dies ist möglich, wenn Sie diese Zeilen in Ihre Konfigurationsdatei einfügen , normalerweise ~/.zshrc:

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

Noch ein paar Informationen:

Dies ist möglich bei Verwendung der zsh-Vervollständigungssystem(gestartet von autoload -Uz compinit && compinit) und wird gesteuert von einemAbonnieren:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

Dadurch wird bestimmt zsh, dass Kleinbuchstaben mit Klein- und Großbuchstaben übereinstimmen (d. h. Großbuchstaben werden nur mit Großbuchstaben übereinstimmen).

Wenn Sie möchten, dass Großbuchstaben auch mit Kleinbuchstaben übereinstimmen, verwenden Sie stattdessen:

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

Wenn Sie nur dann eine Groß-/Kleinschreibung ignorieren möchten, wenn es keine Übereinstimmungen mit Groß-/Kleinschreibung gibt, fügen Sie hinzu '', z. B.

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'

Siehe auch die Beschreibung von matcher-list in man zshcompsys.

verwandte Informationen