Como desativar parcialmente a autocorreção do zsh

35

A função de autocorreção do zsh é muito útil para mim, mas nem sempre dá um resultado adequado.

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

No entanto, o que eu quero é algo como a opção never que pode pará-lo para corrigir comandos como esses para sempre.

Como posso fazer isso?

    
por Shou Ya 20.06.2012 / 12:28

4 respostas

52

Você pode informar ao zsh que ele não deve ser corrigido automaticamente em comandos específicos, aliasando-os com o prefixo 'nocorrect' no seu .zshrc (exemplo: link ):

alias vim='nocorrect vim' 

Como alternativa - se esse processo de lista de permissões ficar muito frustrante - você poderá desativar a correção automática totalmente com o seguinte em seu .zshrc.

Para versões mais recentes do uso de zsh:

 unsetopt correct

para versões mais antigas do uso de zsh:

 unsetopt correct-all

Alterado para adicionar: aqui está uma discussão anterior sobre este assunto - Exceções para o recurso zsh correctall?

    
por 20.06.2012 / 13:10
21

Acho que encontrei uma resposta melhor para isso.

Não tenho certeza sobre versões e outros, mas parece que correct_all deve corrigir os argumentos e , enquanto correct corrige apenas os comandos, eliminando assim esse comportamento irritante.

Isto é o que eu tenho em meus arquivos de configuração

unsetopt correct_all  
setopt correct
    
por 20.06.2013 / 15:42
0

Eu tive o problema ao usar rspec via zeus e gostaria de manter as configurações corretas automaticamente, já que elas parecem funcionar para qualquer outra coisa exceto rspec , por isso nunca tentei nenhuma das outras sugestões acima.

O que eu tive que fazer foi nocorrect zeus:

alias zeus = 'nocorrect zeus'

    
por 20.11.2013 / 17:22
-1

Caso você use oh-my-zsh:

unsetopt correct_all

desativará toda a autocorreção.

Definir aliases para exceções (veja o link abaixo) não faz o truque para mim.

link

    
por 10.04.2015 / 18:56