56 votes

Comment désactiver partiellement l'autocorrection de zsh

La fonction d'autocorrection de zsh m'est très utile, mais elle ne donne pas toujours un résultat correct.

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

Pourtant, ce que je veux, c'est quelque chose comme l'a jamais qui peut l'empêcher de corriger des commandes comme celles-ci pour toujours.

Comment faire ?

63voto

Dude Points 1

Vous pouvez indiquer à zsh qu'il ne doit pas effectuer de correction automatique sur des commandes spécifiques en les aliasant avec le préfixe 'nocorrect' dans votre .zshrc (exemple ici) : http://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration ) :

alias vim='nocorrect vim' 

Alternativement -- si ce processus de liste blanche devient trop frustrant -- vous pouvez désactiver complètement l'autocorrection avec ce qui suit dans votre .zshrc.

Pour les versions plus récentes de zsh, utilisez :

 unsetopt correct

pour les anciennes versions de zsh :

 unsetopt correct-all

Modifié pour ajouter : voici une discussion précédente sur ce sujet - Exceptions à la fonctionnalité zsh correctall ?

34voto

Paulo Casaretto Points 501

Je pense avoir trouvé une meilleure réponse à cette question.

Je ne suis pas sûr des versions et autres, mais il semble que correct_all est censé corriger les commandes et Les arguments, tandis que les correct ne corrige que les commandes, éliminant ainsi ce comportement gênant.

Voici ce que j'ai dans mes fichiers de configuration

unsetopt correct_all  
setopt correct

1voto

IanVaughan Points 213

J'ai rencontré ce problème en utilisant rspec via zeus J'aimerais conserver les paramètres de correction automatique, car ils semblent fonctionner pour tout le reste. sauf rspec Je n'ai donc jamais essayé les autres suggestions ci-dessus.

Ce que je devais faire, c'était nocorrect zeus lui-même :

alias zeus='nocorrect zeus'

0voto

rahul Points 119

J'ai pu désactiver l'autocorrection en utilisant

ENABLE_CORRECTION="false"

J'utilise la version 5.7.1 de zsh.

-1voto

Axel Points 11

Si vous utilisez oh-my-zsh :

unsetopt correct_all

désactive toute autocorrection.

La définition d'alias pour les exceptions (voir le lien ci-dessous) ne fonctionne pas pour moi.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X