¿Cómo puedo usar emacs con git dentro de la terminal?

9

Solía git config --global core.editor emacsconfigurar mi editor git como emacs, pero cuando hago eso y confirmo algo, el editor abre una nueva ventana en lugar de abrir emacs dentro del terminal. Quiero usar emacs como si se le diera -nw pero escribir esto -> git config --global core.editor emacs -nwno es la solución.

Necesito usar git básico por ahora.

Lib101
fuente
2
¿Sabes sobre magit? Hace que la operación básica de git sea muy fácil desde Emacs. magit.vc
Tyler
2
Sí. No puedo usarlo por ahora. Después de que termine la clase, subiré de nivel a magit.
Lib101
Debe describir lo que sucede cuando agrega "-nw" en lugar de simplemente decir que "no es la solución". A mí me funciona cuando el comando se escapa correctamente.
asjo

Respuestas:

19

Cuando corres git config --global core.editor emacs -nw, tu shell divide la línea de comando en palabras antes de invocar git. Git ve "emacs -nw" como dos argumentos separados. Solo necesita uno para poner en el archivo de configuración, por lo que el otro se ignora. (En realidad, es mentira, pero puede consultar la página del manual para obtener más detalles). Puede poner comillas alrededor de una serie de palabras para decirle a su shell que no las rompa: git config --global core.editor "emacs -nw"dará "emacs -nw" a git como un argumento único que Hará lo que quieras.

db48x
fuente
2

No especifica qué hay de malo al abrir una nueva ventana de GUI emacs. Si el problema es el largo tiempo de inicio, puede considerar usar emacsclient como editor. En pocas palabras, ejecuta (server-start)su archivo de inicio de emacs y mantiene abiertas sus emacs de la GUI normal, y luego le dice a git que use un editor llamado emacsclient. Lo que sucede es que el archivo editado aparece en un nuevo búfer en sus emacs en ejecución. Una vez que haya terminado, presione C-x #para finalizar la sesión de emacsclient y luego git (u otro proceso de shell que inició el editor) sabe que el editor "emacsclient" ha terminado con el archivo y continúa con su tarea. ("emacsclient" también es una palabra, por lo que también resuelve su problema inmediato)

Incluso cuando la edición debe realizarse en la ventana del terminal, puede ejecutar emacsclient -nwy eliminar el largo tiempo de inicio. Hay más posibilidades, man emacsclientes una buena lectura.

Ury Marshak
fuente
1
(hubiera sido mejor como un comentario sobre la respuesta anterior, pero no se le permitió publicar comentarios)
Ury Marshak
He estado buscando esto en todas partes, estoy feliz de que sea una respuesta :)
AER