
Ich habe ein Problem mit der automatischen Vervollständigung von ZSH und kann nicht die richtigen Keyworks finden, um es zu beheben.
Zum Beispiel mit Dateien wie
$ ls
Accelion, titi toto tata
Ich möchte schreiben:
$ ls cc<TAB>
und bekomme _NEIN_completion, statt Accelion
.
Hier sind die aktuell eingestellten Optionen:
$ set -o | grep " on"
alwaystoend on
autocd on
autonamedirs on
autopushd on
nobeep on
cdablevars on
extendedhistory on
noflowcontrol on
nohistbeep on
histexpiredupsfirst on
histignoredups on
histignorespace on
histverify on
incappendhistory on
interactive on
interactivecomments on
nolistambiguous on
nolistbeep on
longlistjobs on
nonomatch on
promptsubst on
pushdignoredups on
shinstdin on
sagen Sie mir Bescheid, wenn Sie weitere Einzelheiten wie zle
Optionen (und wie man es entleert!) benötigen.
BEARBEITEN:zsh4.3.17(x86_64-redhat-linux-gnu)
Antwort1
Du hast nicht erwähnt, welche Version zsh
du verwendest. Ich gehe von Version 4 aus.
Ihre zsh
Shell führt zuerst das Matching durch, statt die echte Vervollständigung, wie Sie es wahrscheinlich gewohnt sind. Dieses Verhalten kann durch die Sortierung und optionale Anpassung der Vervollständiger angepasst werden. Weitere Informationen dazu finden Sie indieser Leitfaden.
Bei dem von Ihnen beobachteten Verhalten handelt es sich möglicherweise um eine nicht sensitivierte Übereinstimmung:
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
Der schnellste Weg, dieses Verhalten zu beheben, ohne sich zu sehr in die Anleitung einarbeiten zu müssen, besteht darin, entweder die oben stehende ähnliche Zeile zu suchen und auszukommentieren oder autoload -Uz compinstall
und dann auszuführen compinstall
. Dies führt Sie durch einen einfachen Assistenten, um das zsh
Verhalten anzupassen. Es werden Ihnen einige Fragen gestellt und dann ein einfaches Assistenten erstellt ~/.zshrc
, den Sie anpassen können, wenn Sie mit den Optionen vertrauter werden. Kopieren Sie ~/.zshrc
zuerst Ihr Assistenten, damit Sie eine Referenz haben, falls es Verhaltensweisen gibt, die Sie beibehalten möchten.