web-dev-qa-db-fra.com

Zsh veut corriger automatiquement une commande, avec un _ devant

Je viens de commencer à utiliser Zsh récemment pour une partie du support intégré dans l'invite du shell pour mon statut Git, etc.

Quand je tape:

 Ruby -v

pour confirmer la version de Ruby je suis en cours d'exécution, Zsh demande si je veux changer la commande en _Ruby. Eh bien après avoir dit non à l'invite et la commande terminée comme prévu, je continue d'obtenir le question à l'invite après confirmation de ma commande est correcte.

Je suppose qu'il existe un fichier d'achèvement ou quelque chose du genre.

Merci

Mise à jour:

Le shell n'essaie plus de terminer _Ruby, il a cessé de répondre après avoir fermé le shell plusieurs fois.

J'ai essayé de nettoyer le fichier plusieurs fois mais il y a une variable "opts" de 50 lignes ou plus et les lignes sont toutes exécutées ensemble, certaines lignes de plus de 150 caractères. Je pourrais peut-être vous envoyer une pièce jointe si vous voulez toujours la voir. Je m'excuse sincèrement pour le message désordonné.

70
Joe Ryan

Il s'agit de la correction automatique des commandes, activée par l'option correct. Cela n'a rien à voir avec l'achèvement. Vous voyez _Ruby parce que zsh pense qu'il n'y a pas de commande Ruby et qu'il propose _Ruby comme correspondance existante la plus proche.

Si vous venez d'installer Ruby, il est possible que zsh ait mémorisé la liste des commandes disponibles plus tôt, et il n'essaiera pas toujours de voir si la commande est apparue entre les deux. Dans ce cas, exécutez hash -rf. Les futures sessions zsh n'auront pas ce problème car la commande Ruby existait déjà au démarrage.

Parfois, lorsque vous modifiez votre PATH, zsh oublie certaines commandes hachées. L'option hash_listall aide contre cela. Comme ci-dessus, si vous pouvez forcer zsh à actualiser son cache de commandes avec hash -rf.

111
Gilles

Vous pouvez créer un alias:

alias Ruby='nocorrect Ruby'

C'est ce que j'ai fait quand zsh ne cessait de me demander si je voulais dire .meteor lorsque j'ai tapé meteor car la correction automatique est toujours utile de temps en temps.

19
manafire

Je trouve que la fonction de correction automatique peut parfois devenir ennuyeuse. Je fais donc dans mon ~/.zshrc,

DISABLE_CORRECTION="true"
14
gprasant

Il y a quelque temps après une mise à jour, j'ai obtenu correction automatique de la commande activée, ce que je ne veux pas. Si la même chose vous est arrivée et que vous souhaitez la rétablir, dans le fichier ~/.zshrc, vous devrez la faire:
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="false"

ou commentez-le comme ci-dessous:
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

2
SylvesterAbreu