115 votes

Utilisation de git commit -a avec vim

Je suis nouveau avec git, donc j'ai décidé d'apprendre git en utilisant les tutoriels de github. Le troisième chapitre dit :

"Pour ce premier exemple, nous allons modifier le fichier README pour nous ajouter en tant qu'auteur sur le projet. Nous modifions donc simplement le fichier. Maintenant, nous voulons valider cette modification, donc nous exécutons la commande git commit -a commandement."

Lorsque j'utilise le git commit -a la console ouvre un vim et j'ai écrit mon message, mais je ne sais pas comment fermer cet éditeur vim depuis la console. Comment puis-je enregistrer le message et fermer vim ?

9 votes

Cet aide-mémoire graphique est très utile : viemu.com/vi-vim-cheat-sheet.gif . Je l'utilise comme fond d'écran de mon bureau.

0 votes

@Jean - Sur quelle plateforme êtes-vous, et utilisez-vous Vim en console ou en interface graphique ? N'obtenez-vous pas un texte d'introduction (numéro de version, auteur, etc.) sur l'écran de démarrage ?

198voto

r.m. Points 25280
  1. Dans vim, vous enregistrez un fichier avec :wEnter en mode normal (vous accédez au mode normal en appuyant sur la touche Esc ).
  2. Vous fermez votre fichier avec :q en mode normal.

Vous pouvez combiner ces deux actions et faire Esc:wqEnter pour sauvegarder le commit et quitter vim.

Comme alternative à ce qui précède, vous pouvez également appuyer sur ZZ en mode normal, ce qui permet de sauvegarder le fichier et de quitter vim. C'est également plus facile pour certaines personnes car il s'agit de la même touche pressée deux fois.

25 votes

Vous pouvez également faire git commit -a -m "votre message ici" qui ne fera pas apparaître VIM.

8 votes

@David : Bien sûr. Beaucoup de ces questions ici sont dues au fait que les gens oublient les -m et sont ensuite jetés dans une fenêtre vim et ne savent pas comment en sortir.

3 votes

@yoda : Vous pouvez également passer en mode normal en utilisant ctrl+c. Vous pouvez également utiliser Shift+(z+z) pour enregistrer et quitter (deux Z majuscules).

63voto

Uku Loskit Points 15705

Au lieu d'essayer d'apprendre vim, utilisez un autre éditeur plus simple (comme nano, par exemple). Même si j'aime bien vim, je ne pense pas que l'utiliser dans ce cas soit la solution. Il faut du dévouement et du temps pour le maîtriser.

git config core.editor "nano"

57 votes

C'est drôle, nano était par défaut sur Ubuntu et je n'arrivais pas à trouver comment sauvegarder alors j'ai utilisé votre commande pour passer à vim.

11voto

eckes Points 17277

Voir ce fil de discussion pour une explication : VIM for Windows - Que dois-je taper pour enregistrer et quitter un fichier ?

Comme je l'ai écrit là : pour apprendre Vimming, vous pouvez utiliser l'une des cartes de référence rapide :

Notez également Comment puis-je configurer un éditeur pour travailler avec Git sous Windows ? si vous n'êtes pas à l'aise avec Vim mais souhaitez utiliser un autre éditeur pour vos messages de livraison.

Si votre message de livraison n'est pas trop long, vous pouvez également taper

git commit -a -m "your message here"

0 votes

Vous pouvez également suivre cette réponse pour sortir de vim stackoverflow.com/questions/6098742/using-git-commit-a-with-vim/

0 votes

Bien que ce soit vrai, il n'est pas recommandé .

8voto

cdunn2001 Points 3597

La meilleure question est : comment interrompre le commit lorsque je quitte vim ?

Il y a deux façons de procéder :

  1. :cq ou :cquit
  2. Supprimer toutes les lignes du message de livraison, y compris les commentaires, puis :wq

Dans les deux cas, git recevra un code d'erreur et ne procédera pas à la livraison. Ceci est particulièrement utile avec git commit --amend .

0 votes

En fait, je me souviens de ça dans le jargon des radios amateurs. Au début de Contact Après la mort de son père, la jeune Ellie (Jena Malone) dit à l'Univers : "CQ CQ CQ". Ce qui signifie, "Appel à toutes les stations."

6voto

Abizern Points 52378

Essayez ZZ pour sauvegarder et fermer. Voici un peu plus d'informations sur l'utilisation de vim avec Git

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X