J'ai cet étrange problème avec l'utilisation vi
comme éditeur pour git commit -a
.
Le flux normal est: je tape git commit -a
, vi
apparaît, j'entre mon message de validation, puis :wq
pour enregistrer et quitter vi
.
Cela fonctionne bien. Cependant, parfois je fais une faute de frappe et au lieu de :wq
taper :Wq
(car j'utilise le shift pour :
). Ensuite, lorsque je me corrige et que je tape à :wq
nouveau, 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?
mountain-lion
terminal
git
vi
houbysoft
la source
la source
git
etvi
? Je ne peux pas reprocher cela avec vim 7.3, git version 1.7.11.1.7.3
et git1.7.9.6 (Apple Git-31.1)
, ceux par défaut sur Mountain Lion afaikRéponses:
vi
existe avec un statut différent de zéro, bien que sans détails supplémentaires sur votre configuration, il est difficile de dire pourquoi. Si vous utilisez de nombreux pluginsvim
, vous pouvez essayer de déplacer votre.vimrc
fichier vers.vimrc.back
et voir si vous pouvez répliquer. Il existe quelques sources qui discutent de ce problème, dont au moins une avec une solution potentielle:J'essaierais cependant de supprimer votre
.vimrc
premier. Cela semble provoquer plus de consternation.la source
git config --global core.editor /usr/bin/vim
corrigé.Comme répondu ici: /programming/22699614/git-commit-messages-lost-by-vi
La vraie solution est de
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
la source
:W
et d'avoir git rejeter votre message de validation lorsque vous l'enregistrez par la suite.vim
invocation normale et le hack qu'ils utilisent.Utilisez-vous les plugins golang vim? Cette ligne provoque le problème de valeur de sortie vi pour moi:
filetype plugin indent off
La suppression de l'ensemble du bloc de plug-in golang a
.vimrc
résolu le problème. L'installation du plugin golang à l'aide de fugitif peut être aussi simple que:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang
(Je viens de documenter le problème dans ce numéro sur le github vim-golang )
la source
Quelque chose ne va pas avec la configuration de Git, je suppose.
La solution est donc de réinitialiser la configuration de Git et cela a fonctionné pour moi:
$(which vim)
est plus flexible que/usr/bin/vim
(l'exécutable vim peut ne pas être là pour certaines personnes)la source