我在 Gentoo x64 上使用 zsh,当我sudo vim /path/to/file
从主文件夹中输入内容时,zsh 会询问:
zsh: correct 'vim' to '.vim' [nyae]?
我想运行vim
不是我的.vim
文件夹。我该如何解决?
我的猜测是这setopt autocd
导致了这一点。奇怪的是,如果我不添加sudo
,zsh 不会要求更正任何内容。
答案1
好的,我明白了。问题不是autocd
,而是correctall
。vim
因为命令 ( vim file
) 不会触发任何更正*,但vim
insudo 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]?
%
*:或者不应该,我已经让 zsh 询问是否应该出于某种原因纠正command
几个_command
命令。也许是因为它检查别名并给予它们更高的优先级。
答案2
尝试alias sudo='nocorrect sudo'
。