¿Cómo puedo usar emacs con git dentro de la terminal?
On diciembre 31, 2020 by admin He «usado git config --global core.editor emacs
para configurar mi editor git como emacs, pero cuando hago eso y cometo algo, editor abre una nueva ventana en lugar de abrir emacs dentro de la terminal. Quiero usar emacs como si se le diera -nw pero escribir esto -> git config --global core.editor emacs -nw
no es la solución.
Necesito usar git básico por ahora.
Comentarios
- ¿Conoce magit? Hace operaciones básicas de git una brisa desde dentro de Emacs. magit.vc
- Sí. No puedo ' t usarlo por ahora. Cuando termine la clase, ' subiré de nivel hasta magit.
- Debes describir lo que sucede cuando agregas " -nw " en lugar de simplemente indicar que " no es la solución ". Funciona para mí, cuando el comando se escapa correctamente.
Responder
Cuando ejecuta git config --global core.editor emacs -nw
, su shell divide la línea de comando en palabras antes de invocar a git. Por tanto, Git ve «emacs -nw» como dos argumentos separados. Solo necesita uno para colocarlo en el archivo de configuración, por lo que el otro se ignora. (En realidad, eso es mentira, pero puedes consultar la página del manual para obtener más detalles). Puedes poner comillas alrededor de una serie de palabras para decirle a tu shell que no las divida: git config --global core.editor "emacs -nw"
will da «emacs -nw» a git como un único argumento que hará lo que quieras.
Respuesta
No especificas ¿Qué hay de malo en abrir una nueva ventana GUI emacs? Si el problema es el largo tiempo de inicio, puede considerar usar emacsclient como editor. En pocas palabras, ejecutas (server-start)
en tu archivo de inicio de emacs y mantienes tu GUI emacs regular abierta, y luego le dices a git que use un editor llamado emacsclient. Lo que sucede es que el archivo editado aparece en un nuevo búfer en su 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 sigue con lo suyo. («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 de terminal, puede ejecutar emacsclient -nw
y elimine el largo tiempo de inicio. Hay más posibilidades, man emacsclient
es una buena lectura.
Comentarios
- (would ' he sido mejor como comentario en la respuesta anterior, pero no se me permite publicar comentarios)
- Yo ' he estado buscando en todas partes por esto, totalmente feliz de que ' sea una respuesta 🙂
- El problema principal que tengo es que no ' t siempre devuelve el foco a la terminal después de salir de emacs. Hay situaciones en las que el enfoque nunca se devuelve, como cuando tiene una ventana configurada como siempre en la parte superior, esa ventana parece engancharse después de salir de emacs.
Deja una respuesta