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é.
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
.
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.
Je trouve que la fonction de correction automatique peut parfois devenir ennuyeuse. Je fais donc dans mon ~/.zshrc,
DISABLE_CORRECTION="true"
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"