zsh는 vim을 .vim으로 수정하려고 합니다.

zsh는 vim을 .vim으로 수정하려고 합니다.

저는 Gentoo x64에서 zsh를 사용하고 있는데, sudo vim /path/to/file 홈 폴더에서 뭔가를 입력하면 zsh가 다음을 묻습니다:

zsh: correct 'vim' to '.vim' [nyae]?

vim내 폴더가 아닌 .vim폴더를 실행하고 싶습니다 . 어떻게 해결할 수 있나요?

내 생각엔 이것이 setopt autocd이것으로 이어지는 것 같다. 이상한 점은 sudozsh가 추가하지 않으면 아무것도 수정하지 않는다는 것입니다.

답변1

그래 알았어. 문제는 autocd아니지만 correctall. vimcommand( vim file)는 수정 사항을 트리거하지 않지만* vimin은 sudo 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여러 명령을 수정해야 하는지 zsh에게 물어본 적이 있습니다 . _command아마도 별칭을 확인하고 더 높은 우선 순위를 부여하기 때문일 수 있습니다.

답변2

노력하다 alias sudo='nocorrect sudo'.

관련 정보