Gentoo x64でzshを使用していますが、ホームフォルダーからSudo vim /path/to/file
と入力すると、zshは次のように尋ねます。
zsh: correct 'vim' to '.vim' [nyae]?
.vim
フォルダーではなくvim
を実行したい。これを修正するにはどうすればよいですか?
私の推測では、setopt autocd
がこれを引き起こしていると思います。奇妙なことに、Sudo
を追加しないと、zshは何も修正するように要求しません。
alias Sudo='nocorrect Sudo'
を試してください。
OK、これだ。問題はautocd
ではなく、correctall
です。コマンドとしてのvim
(vim file
)は修正をトリガーしません*が、Sudo vim
のvim
は引数であり、zsh
はそれが現在のディレクトリ内のフォルダの名前に近いことを確認し、かどうかを尋ねます。ファイルとフォルダがより一般的な引数であるため、これに変更する必要があります。したがって、解決策はunsetopt correctall
(またはsetopt nocorrectall
)です。実例として; .zsh
フォルダーがあることに注意してください。
% 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]?
%
*:または、そうすべきではありません。何らかの理由で、いくつかのコマンドでcommand
を_command
に修正する必要があるかどうかをzshに尋ねました。おそらく、エイリアスをチェックして優先度を高くしているためです。