Utiliser git commit -a avec vim

111

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

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

Quand j'utilise la git commit -acommande, 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 enregistrer le message et fermer vim?

Jean
la source
9
Cette feuille de triche graphique est très utile: viemu.com/vi-vim-cheat-sheet.gif . Je l'utilise comme fond d'écran.
yasouser
@Jean - Sur quelle plate-forme êtes-vous et utilisez-vous la console ou l'interface graphique Vim? N'avez-vous pas un texte d'introduction (numéro de version, auteur, etc.) sur l'écran de démarrage?
Rook

Réponses:

193
  1. Dans vim, vous enregistrez un fichier avec :wEnteren mode normal (vous accédez au mode normal en appuyant sur Esc).
  2. Vous fermez votre fichier avec :qen mode normal.

Vous pouvez combiner ces deux actions et faire Esc:wqEnterpour enregistrer le commit et quitter vim.

Comme alternative à ce qui précède, vous pouvez également appuyer sur ZZen mode normal, ce qui enregistrera le fichier et quittera vim. C'est également plus facile pour certaines personnes car c'est la même touche enfoncée deux fois.

a B c d
la source
24
Vous pouvez également faire git commit -a -m "votre message ici" qui ne fera pas apparaître VIM.
David Basarab
8
@David: Bien sûr. Beaucoup de ces questions ici sont dues au fait que les gens oublient l' -moption et sont ensuite jetés dans une fenêtre vim et ne savent pas comment en sortir.
abcd
3
@yoda: Vous pouvez également accéder au mode normal en utilisant ctrl + c. En outre, c'est Shift + (z + z) pour enregistrer et quitter (deux Z majuscules).
Rocket Hazmat
1
@Rocket: Vous avez raison. Je n'avais pas réalisé que j'étais entré à la zplace Z.
abcd
5
@EEva: Oui, mais je préfère ne pas enseigner cela à un débutant, comme s'il oublie le :, puis ils commencent à supprimer des caractères, puis cela mène à la panique 2.
abcd
58

Au lieu d'essayer d'apprendre vim, utilisez un autre éditeur plus simple (comme nano, par exemple). Autant j'aime 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"
Uku Loskit
la source
52
Ca c'est drôle; nano était par défaut sur Ubuntu et je ne savais pas comment enregistrer, j'ai donc utilisé votre commande pour passer à vim.
hyperslug
11

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

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

Remarquez également Comment puis-je configurer un éditeur pour qu'il fonctionne avec Git sous Windows? si vous n'êtes pas à l'aise avec Vim mais que vous souhaitez utiliser un autre éditeur pour vos messages de validation.

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

git commit -a -m "your message here"
eckes
la source
Vous pouvez également suivre cette réponse pour sortir de vim stackoverflow.com/questions/6098742/using-git-commit-a-with-vim/...
David Basarab
Bien que cela soit vrai, ce n'est pas conseillé .
Jorge Leitao
7

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

Il existe 2 façons:

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

Dans les deux cas, git donnera un code d'erreur, il ne poursuivra donc pas la validation. Ceci est particulièrement utile avec git commit --amend.

cdunn2001
la source
Btw, je me souviens de cela du jargon de la radio Ham. Au début de Contact , après la mort de son père, la jeune Ellie (Jena Malone) raconte à l'Univers, "CQ CQ CQ". Cela signifie "Appeler toutes les stations".
cdunn2001 du
1

Pour quitter la frappe: q vous permettra de quitter.

Si vous souhaitez quitter sans enregistrer, vous pouvez appuyer sur: q!

Une recherche Google sur "vim cheatsheet" peut vous fournir une référence que vous devez imprimer avec une collection de raccourcis rapides.

http://www.fprintf.net/vimCheatSheet.html

chrisjlee
la source