git commit avec emacs en tant qu’éditeur sous Windows

En utilisant git bash sous Windows, je core.editor à core.editor mon core.editor :

  c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2 

Lors de la git commit , un nouveau cadre emacs s’ouvre comme prévu. Le tampon ouvert a $@ nom $@ . Je ne peux pas enregistrer le tampon et quitter emacs. Git se plaint que le message de validation était vide.

J’ai une solution de contournement, qui consiste à définir mon core.editor pour:

 c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2 .git/COMMIT_EDITMSG 

Cela fonctionne, mais avec quelques inconvénients:

  • Je dois être dans le répertoire qui contient le dossier .git. Cela ne fonctionne pas si je suis dans un répertoire enfant.
  • Le cadre emacs qui s’ouvre a deux fenêtres, une avec COMMIT_EDITMSG , une avec $@ .

Existe-t-il un meilleur moyen de choisir emacs en tant qu’éditeur de validation (en plus de l’ouvrir dans le terminal)?

Je vous suggère soit

  • exécuter Emacs en tant que démon – mais, apparemment, uniquement sous Unix, ou
  • lancez Emacs comme d’habitude et démarrez le serveur avec Mx server-start RET ou ajoutez (server-start) à .emacs

et utilisez emacsclient au lieu de emacs comme core.editor si vous insistez pour core.editor git partir de la ligne de commande (appuyez sur Cx # dans le tampon client lorsque vous avez terminé les modifications pour renvoyer le contrôle à git ).

Cependant, la meilleure façon d’utiliser Emacs avec git est vc :

Dans Emacs , tapez Cx vd votre / git / repo / root / dir RET pour obtenir la liste des fichiers modifiés, marquez ceux que vous souhaitez valider avec m , tapez Cx vv pour les valider – un tampon pour le message de validation apparaît (initialisé pour vous avec l’entrée ChangeLog , le cas échéant), modifiez-le, tapez Cc Cc et vous avez terminé.

Une autre interface très intéressante à git dans emacs est fournie par magit . L’idée derrière magit est de vous fournir une interface interactive dans emacs pour exécuter facilement toutes les commandes git fréquemment utilisées, éliminant ainsi le besoin de lancer directement git depuis la ligne de commandes.

Bien qu’il ne soit pas standard (contrairement à vc , qui a été mentionné dans une autre réponse), vous pouvez l’installer très simplement en utilisant le système de packaging, par exemple à partir des référentiels melpa ou marmalade .

Cela fonctionne pour moi sous msysgit 1.7.11:

 git config core.editor '/d/bin/emacs-24.3/bin/emacs.exe' 

mais quand je suis passé à ceci:

 git config core.editor '/d/bin/emacs-24.3/bin/emacs.exe --no-splash' 

J’ai le même tampon ‘$ @’ que vous.