35

Функция автокоррекции zsh очень полезна для меня, но не всегда дает правильный результат.

~$ sudo vim somefile
zsh: correct 'vim' to '.vim' [nyae]? 

Тем не менее, я хочу что-то вроде опции « никогда», которая может остановить его для исправления таких команд навсегда.

Как я могу это сделать?

4 ответа4

52

Вы можете сообщить zsh, что он не должен выполнять автозамену для определенных команд, назначив им псевдонимы с префиксом 'nocorrect' в вашем .zshrc (пример здесь: http://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration):

alias vim='nocorrect vim' 

В качестве альтернативы - если этот процесс внесения в белый список становится слишком неприятным - вы можете полностью отключить автозамену с помощью следующего в вашем .zshrc.

Для более новых версий zsh используйте:

 unsetopt correct

для более старых версий zsh используйте:

 unsetopt correct-all

Поправлено добавить: вот предыдущая дискуссия на эту тему - Исключения для функции zsh correctall?

22

Я думаю, что нашел лучший ответ на это.

Я не уверен насчет версий и тому подобного, но кажется, что correct_all должен корректировать команды и аргументы, а correct только команды, поэтому устраняет это раздражающее поведение.

Это то, что у меня есть в моих конфигурационных файлах

unsetopt correct_all  
setopt correct
0

У меня возникла проблема при использовании rspec через zeus , и я хотел бы сохранить настройки автокоррекции , так как они, кажется, работают для всего остального, кроме rspec , поэтому я никогда не пробовал ни одного из других предложений выше.

Что я должен был сделать, nocorrect это сам зевс:

псевдоним zeus = 'неправильный зевс'

-1

Если вы используете oh-my-zsh:

отменить выбор correct_all

отключит всю автокоррекцию.

Установка псевдонимов для исключений (см. Ссылку ниже) не помогает мне.

https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/correction.zsh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .