zsh 想要将 vim 更正为 .vim

Roc*_*mat 12 zsh gentoo sudo line-editor

我在 Gentoo x64 上使用 zsh,当我sudo vim /path/to/file 从我的主文件夹输入时,zsh 询问:

zsh: correct 'vim' to '.vim' [nyae]?
Run Code Online (Sandbox Code Playgroud)

我想运行vim不是我的.vim文件夹。我该如何解决?

我的猜测是setopt autocd导致这种情况。奇怪的是,如果我不添加sudo,zsh 不会要求更正任何内容。

Kev*_*vin 15

好的,我明白了。问题不是autocd,是correctallvim作为命令 ( vim file) 不会触发任何更正*,但viminsudo 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]? 
%
Run Code Online (Sandbox Code Playgroud)

*:或不应该,我有zsh的询问是否应该纠正command,以_command在出于某种原因一对夫妇的命令。也许是因为它检查别名并赋予它们更高的优先级。


小智 8

试试alias sudo='nocorrect sudo'

  • `不正确`,嗯?这是否只是忽略了对该命令的更正?稍后我必须对此进行测试。 (2认同)