Ausnahmen zu zsh correctall Funktion?

13

Ich nutze die correctallOption in zshund bin im Allgemeinen recht zufrieden damit. Es gibt jedoch nur wenige Situationen, in denen ich diese Funktion sehr ärgerlich finde.

Nehmen wir zum Beispiel an, ich habe eine Datei file1.texund möchte eine Kopie mit dem Namen erstellen, file2.texdie ich dann bearbeite, um einige Änderungen vorzunehmen. Ich werde tun

cp file1.tex file2.tex

nur um davon erzählt zu werden, zshdass ich vielleicht falsch geschrieben habe file2.texund ob ich es korrigieren möchte file1.tex.

Folgendes passiert: Wenn zshversucht wird, die Rechtschreibung zu überprüfen, wird im aktuellen Verzeichnis nach einer aufgerufenen Datei gesucht file2.tex, diese nicht gefunden, es wird jedoch file1.texangenommen, dass ich falsch geschrieben habe file1.tex, und ich werde gefragt, ob ich das korrigieren möchte.

Das passiert mir so oft, dass ich die correctallOption tatsächlich deaktiviere und nur nutze correct. Als schlechter Schreibkraft vermisse ich diese correctallOption jedoch sehr. Also meine meine Frage:

Gibt es eine Möglichkeit, zshdas letzte Argument des cpBefehls nicht zu korrigieren ?

(Ich weiß, dass ich das gewünschte Ergebnis erzielen kann, indem ich die Vervollständigungseinstellungen für ändere cp, aber ich möchte trotzdem die Vervollständigung für das letzte Argument haben. Ich möchte es einfach nicht automatisch korrigieren.)

Jan Hlavacek
quelle
Ich denke, Sie können das Ergebnis erhalten, indem Sie die Vervollständigungseinstellungen für ändern cp, ohne die Vervollständigung zu verlieren. Schauen Sie sich den Abschnitt zstylein der zshcompsysManpage an, insbesondere das correctionsTag. Melden Sie sich unbedingt zurück, wenn Sie wissen, welchen Befehl Sie ausgeben müssen (ich weiß nicht).
Gilles 'SO - hör auf, böse zu sein'
@ Gilles: Danke! Das wird mir zumindest eine Richtung geben, in die ich schauen kann. Wenn ich das nächste Mal ein paar Tage (oder vielleicht Wochen oder Monate?) Nichts zu tun habe, werde ich sehen, ob ich irgendeinen Sinn daraus machen kann. :)
Jan Hlavacek

Antworten:

14

Probiere diese.

alias cp='nocorrect cp '
alias mv='nocorrect mv '
alias mkdir='nocorrect mkdir '

etc.

Das ist nicht ganz richtig, da es die Anwendung von correctall für den gesamten Befehl deaktiviert, aber ich denke, es ist ein guter Kompromiss. Vervollständigung (einschließlich des korrekten Vervollständigers) und Erweiterung funktionieren beispielsweise weiterhin.

peth
quelle
Vielen Dank. Obwohl es nicht genau das ist, wonach ich gesucht habe, scheint es das Nächste zu sein, was tatsächlich möglich ist.
Jan Hlavacek