
Я использую zsh на Gentoo x64, и когда я печатаю 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
является 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]?
%
*: Или не должен, у меня zsh спрашивал, следует ли исправить command
на _command
пару команд по какой-то причине. Возможно, потому что он проверяет псевдонимы и дает им более высокий приоритет.
решение2
пытаться alias sudo='nocorrect sudo'
.