Ausnahmen von der Funktion zsh correctall?

3353
Jan Hlavacek

Ich nutze die correctallOption in zshund bin im Allgemeinen recht zufrieden damit. Es gibt jedoch nur wenige Situationen, in denen diese Funktion sehr störend ist.

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

cp file1.tex file2.tex 

Nur um das zu sagen zsh, habe ich vielleicht falsch geschrieben file2.texund wenn ich es korrigieren möchte file1.tex.

Was passiert, ist folgendes: Wenn zshversucht wird, die Rechtschreibung zu überprüfen, sucht es im aktuellen Verzeichnis nach einer Datei mit dem Namen file2.tex, findet sie nicht, findet file1.texund nimmt an, dass ich falsch geschrieben habe file1.tex, und fragt mich, ob ich das korrigieren möchte.

Das passiert mir so oft, dass ich die correctallOption tatsächlich deaktiviert und nur benutze correct. Aber so schlecht ich auch bin, ich vermisse die correctallOption wirklich . Also meine meine Frage:

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

(Ich weiß, ich könnte das gewünschte Ergebnis erhalten, indem ich die Fertigstellungseinstellungen modifiziere cp, aber ich möchte immer noch das letzte Argument abschließen. Ich möchte es einfach nicht automatisch korrigieren.)

12
Ich denke, Sie können das Ergebnis erhalten, indem Sie die Fertigstellungseinstellungen für "cp" ändern, ohne dass die Fertigstellung verloren geht. Schauen Sie sich den Abschnitt über `zstyle` in der Manpage` zshcompsys` an, insbesondere das `korrections`-Tag. Stellen Sie sicher, dass Sie einen Bericht zurückschicken, wenn Sie wissen, welcher Befehl ausgegeben werden soll (ich weiß es nicht). Gilles vor 13 Jahren 0
@ Gilles: Danke! Das gibt mir wenigstens eine Richtung, in die ich schauen muss. Nächstes Mal, wenn ich einige Tage (oder vielleicht Wochen oder Monate?) Habe und nichts zu tun habe, werde ich sehen, ob ich einen Sinn davon habe. :) Jan Hlavacek vor 13 Jahren 0

1 Antwort auf die Frage

13
peth

Probiere diese.

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

usw.

Das ist nicht ganz auf dem Punkt, da dadurch die Anwendung von correctall für den gesamten Befehl deaktiviert wird, aber ich denke, es ist ein guter Kompromiss. Die Fertigstellung (einschließlich des _correct-Vervollständigers) und die Erweiterung funktionieren beispielsweise weiterhin.

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 vor 13 Jahren 0