3

Как полностью отключить автозамену zsh?

Мне известна опция 'nocorrect', которая применяется только к определенным командам. Но я хочу полностью отключить его, чтобы, когда я набираю «Lear» вместо «Clear», он не запрашивал исправления.

Я должен отметить, что «unsetopt correctall», кажется, ничего не делает для меня

collin@mandalay ~
  % unsetopt correctall

collin@mandalay ~
  % lear
zsh: correct 'lear' to 'clear' [nyae]? n
zsh: command not found: lear

4 ответа4

3

В вашем .zshrc

 #disable auto correct
 unsetopt correct_all

Из справочной страницы zsh (zshoptions):

   CORRECT (-0)
          Try to correct the spelling of commands.  Note that, when the HASH_LIST_ALL option is not set or when some directories in the  path  are  not
          readable, this may falsely report spelling errors the first time some commands are used.

   CORRECT_ALL (-O)
          Try to correct the spelling of all arguments in a line.

Таким образом, правильная опция исправит ТОЛЬКО команды, а не аргументы в строке.

Опция corect_all исправит команды и все аргументы в строке.

2

Ааааа !! ... Я вижу, что я должен был использовать 'unsetopt correct' вместо correct_all

collin@mandalay ~
  % unsetopt correct

collin@mandalay ~
  % lear
zsh: command not found: lear
0

Кроме того, если вы не можете изменить ваш .zshrc или .zhsenv (я говорю о .zhsenv, потому что некоторые ответы, внешние по отношению к этому посту, говорят об изменении этого файла, хотя при просмотре комментариев по умолчанию в файлах кажется, что .zshrc - правильный):

Вы можете изменить свой .zshrc.user. Я вставил в это:

#Disable autocorrect
unsetopt correct_all
unsetopt correct
DISABLE_CORRECTION="true" 

Это, вероятно, избыточно (последняя строка)

0

В случае, если вы используете конфигурацию grml (и как-то забыли): добавьте следующую строку в ваш .zshrc.pre или .zshrc.local:

NOCOR = 1

Обычный метод, как уже упоминалось другими, заключается в использовании unsetopt correct_all и / или unsetopt correct - но это переопределяется конфигурацией grml.

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