
Ich verwende zsh auf Gentoo x64 und wenn ich sudo vim /path/to/file
aus meinem Home-Ordner tippe, fragt zsh:
zsh: correct 'vim' to '.vim' [nyae]?
Ich möchte vim
nicht meinen .vim
Ordner ausführen. Wie behebe ich das?
Ich vermute, dass dies die setopt autocd
Ursache ist. Merkwürdig ist, dass sudo
zsh nicht nach Korrekturen fragt, wenn ich nichts hinzufüge.
Antwort1
OK, ich habe es verstanden. Das Problem ist nicht autocd
, sondern correctall
. vim
als Befehl vim file
löst ( ) keine Korrektur aus*, aber vim
in sudo vim
ist ein Argument, zsh
sieht, dass es dem Namen eines Ordners im aktuellen Verzeichnis nahe kommt, und fragt, ob Sie dorthin wechseln möchten, da Dateien und Ordner häufigere Argumente sind. Die Lösung ist also unsetopt correctall
(oder setopt nocorrectall
). Zur Veranschaulichung; beachten Sie, dass ich einen .zsh
Ordner habe:
% unsetopt correctall
% setopt autocd correct
% vim zsh
% sudo vim zsh
% setopt correctall
% vim zsh
zsh: correct 'zsh' to '.zsh' [nyae]?
% sudo vim zsh
zsh: correct 'zsh' to '.zsh' [nyae]?
zsh: correct 'vim' to '.vim' [nyae]?
%
*: Oder sollte es nicht, ich habe aus irgendeinem Grund bei einigen Befehlen von zsh gefragt, ob es dies korrigieren soll. Vielleicht, weil es Aliase prüft und ihnen eine höhere Priorität gibt command
._command
Antwort2
versuchen alias sudo='nocorrect sudo'
.