Desativar totalmente a correção automática de zsh

3

Como você desabilita a autocorreção do zsh completamente?

Estou ciente da opção 'nocorrect', que se aplica apenas a determinados comandos. Mas eu quero isso totalmente para que quando eu digite 'lear' em vez de 'clear', isso não irá pedir uma correção.

Devo observar que 'unsetopt correctall' não parece fazer nada por mim

collin@mandalay ~
  % unsetopt correctall

collin@mandalay ~
  % lear
zsh: correct 'lear' to 'clear' [nyae]? n
zsh: command not found: lear
    
por Collin Peters 30.11.2012 / 18:05

4 respostas

2

Ahhhh !! ... Eu vejo que eu deveria usar 'unsetopt correct' ao invés de correct_all

collin@mandalay ~
  % unsetopt correct

collin@mandalay ~
  % lear
zsh: command not found: lear
    
por 30.11.2012 / 18:08
3

No seu .zshrc

 #disable auto correct
 unsetopt correct_all

A partir do manpage de 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.

Portanto, a opção correta corrigirá SOMENTE os comandos e não os argumentos na linha.

A opção corect_all corrigirá comandos E todos os argumentos na linha.

    
por 07.12.2012 / 13:18
0

Além disso, se você não pode modificar seu .zshrc ou .zhsenv (falo sobre o .zhsenv porque algumas respostas externas a este post falam sobre como modificar este arquivo, apesar de ver os comentários padrão nos arquivos, parece que .zshrc é o direito um):

você pode modificar seu arquivo .zshrc.user. Eu coloquei:

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

Isso é provavelmente redundante (a última linha)

    
por 28.08.2014 / 10:05
0

Caso você esteja usando a configuração grml (e tenha de alguma forma esquecido): adicione a seguinte linha ao seu arquivo .zshrc.pre ou .zshrc.local:

NOCOR=1

O método normal é, como mencionado por outros, usar um unsetopt correct_all e / ou unsetopt correct - mas isso é sobrescrito pela configuração grml.

    
por 01.05.2016 / 01:53

Tags