git commit con emacs como editor en Windows

Usando git bash en Windows, configuré mi core.editor a lo siguiente:

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

Después de la git commit , se abre un nuevo marco de emacs como se esperaba. El buffer abierto tiene $@ como nombre. No puedo save el buffer y salir de emacs. Git se queja de que el post de compromiso estaba vacío.

Tengo una solución, que es configurar mi core.editor para:

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

Esto funciona, pero con un par de inconvenientes:

  • Debo estar en el directory que contiene la carpeta .git. No funciona si estoy en un directory secundario.
  • el marco de emacs que se abre tiene dos windows, una con COMMIT_EDITMSG , una con $@ .

¿Hay una mejor manera de elegir emacs como editor de commit (además de abrirlo en el terminal)?

Sugiero que tú tampoco

  • ejecutar Emacs como daemon , pero eso es, al parecer, unix-only, o
  • ejecute Emacs como de costumbre e inicie el server con el server Mx server-start RET o agregue (server-start) a .emacs

y use emacsclient lugar de emacs como su core.editor si insiste en ejecutar git desde la línea de command (presione Cx # en el búfer del cliente cuando termine de editar para pasar el control a git ).

Sin embargo, la mejor manera de usar Emacs con git es vc :

En Emacs , escriba Cx vd su / git / repo / root / dir RET para get la list de files modificados, marque los que desea confirmar con m , escriba Cx vv para confirmarlos – aparece un búfer para el post de confirmación (inicializado para con la input ChangeLog , si corresponde), edítelo, escriba Cc Cc y listo.

Otra interfaz muy agradable para git dentro de emacs es proporcionada por magit . La idea detrás de magit es proporcionarle una interfaz interactiva dentro de emacs para ejecutar fácilmente todos los commands git utilizados frecuentemente, eliminando la necesidad de ejecutar directamente git desde la command-line.

Aunque no es estándar (a diferencia de vc , que se mencionó en otra respuesta), puede instalarlo de manera muy simple utilizando el sistema de empaquetado, por ejemplo desde los repositorys de melpa o mermelada .

Esto funciona para mí bajo msysgit 1.7.11:

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

pero cuando cambié a esto:

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

Obtuve el mismo buffer '$ @' que tú.