web-dev-qa-db-fra.com

Comment désactiver partiellement la correction automatique du zsh

La fonction d'autocorrection de zsh est très utile pour moi, mais 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’option a jamais qui peut l’arrêter pour corriger des commandes comme celles-ci pour toujours.

Comment puis-je faire ceci?

36
Shou Ya

Vous pouvez informer zsh qu'il ne doit pas corriger automatiquement 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 la correction automatique avec les éléments suivants dans votre .zshrc.

Pour les nouvelles versions de zsh, utilisez:

 unsetopt correct

pour les anciennes versions de zsh, utilisez:

 unsetopt correct-all

Amendé pour ajouter: voici une discussion précédente sur ce sujet - Exceptions to zsh correctall feature?

53
Soz

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

Je ne suis pas sûr des versions et de quoi, mais il semble que correct_all soit supposé corriger les commandes et arguments, tandis que correct ne corrige que les commandes, éliminant ainsi ce comportement ennuyeux.

C'est ce que j'ai dans mes fichiers de configuration

unsetopt correct_all  
setopt correct
22
Paulo Casaretto

J'ai eu le problème en utilisant rspec via zeus, et j'aimerais conserver les paramètres de correction automatique, car ils semblent fonctionner pour tout le reste saufrspec, je n'ai donc jamais essayé aucune des suggestions ci-dessus.

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

alias zeus = 'nocorrect zeus'

0
IanVaughan