24 votes

erreur : Il y a eu un problème avec l'éditeur 'vi' lors de son utilisation avec git.

J'ai ce problème étrange en utilisant vi en tant qu'éditeur pour git commit -a .

Le flux normal est : Type I git commit -a , vi apparaît, j'entre mon message de validation, et ensuite :wq pour sauvegarder et sortir de vi .

Cela fonctionne bien. Cependant, il arrive que je fasse une faute de frappe et qu'au lieu de :wq I type :Wq (parce que j'utilise le décalage pour : ). Ensuite, lorsque je me corrige et que je tape :wq encore, git donne l'erreur suivante :

error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

Comment puis-je réparer cela ?

30voto

applOOb Points 341

Comme répondu ici : https://stackoverflow.com/questions/22699614/git-commit-messages-lost-by-vi

La véritable solution consiste à

git config --global core.editor vim -f

Selon la documentation de vim - -f option should be used when Vim is executed by a program that will wait for the edit session to finish

19voto

PhoneixS Points 603

vi existe avec un statut non nul, mais sans détails supplémentaires sur votre configuration, il est difficile de dire pourquoi. Si vous utilisez un grand nombre de plugins pour vim vous pouvez essayer de déplacer votre .vimrc pour .vimrc.back et voir si vous pouvez le reproduire. Il y a un quelques sources que discuter de ce problème, dont au moins une avec une solution potentielle :

git config --global core.editor /usr/bin/vim

Je voudrais essayer d'enlever votre .vimrc d'abord, cependant. Cela semble causer plus de consternation.

1voto

Tim Jarvis Points 12024

Utilisez-vous les plugins vim de golang ? Cette ligne est à l'origine du problème de valeur de sortie de vi pour moi : filetype plugin indent off

Suppression de l'ensemble du bloc de plugins golang en .vimrc a réglé le problème. Installer le plugin golang en utilisant fugitive peut être aussi simple que : ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang

(Je viens de documenter le problème dans cette question sur le vim-golang github )

0voto

demokritos Points 303

Il doit y avoir un problème avec la configuration de Git.

La solution est donc de réinitialiser la configuration de Git et cela a fonctionné pour moi :

git config --global core.editor $(which vim)

$(which vim) est plus souple que /usr/bin/vim (l'exécutable vim peut ne pas être là pour certaines personnes)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X