Salga del cliente de emacs que se ejecuta dentro del búfer de terminal de emacs

Pregunta:

Recientemente, quería comprometerme con mi repositorio de git desde emacs. En lugar de ejecutar algunos comandos del modo git, abrí un búfer de terminal y git commit dentro. Esto funciona bien, excepto que el editor de mensajes de confirmación es, por supuesto, emacs. Por costumbre, intenté guardar y cerrar el editor después de insertar el mensaje de confirmación, pero eso cerró mi emacs principal …

Como ejecuto emacs en modo cliente / servidor, simplemente puedo volver a conectarme y tener todos los búferes abiertos. Pero, ¿cómo cierro los emacs secundarios (además de matarlo desde otra terminal)?

En general, ¿cómo envío ctrl / meta a un programa que se ejecuta en el búfer del terminal?

Respuesta:

Si está en búfer de term en char mode , debe escapar de Cc . Entonces, si está ejecutando una instancia de terminal de Emacs dentro del búfer de término, ejecutar save-buffers-kill-terminal requiere un Cc adicional: Cx Cc Cc .

Si está ejecutando una instancia de Emacs en un búfer de term en line mode , no creo que haya una forma directa de eliminar el Emacs anidado. Primero debe volver al modo char, a través de Cc Ck . Entonces puede llamar a Cx Cc Cc como se Cx Cc Cc anteriormente.

Dicho esto, en lugar de mirar una instancia de Emacs desde su búfer de términos, debería llamar a emacsclient . Eso abrirá su archivo en un búfer normal de Emacs en la instancia actual de Emacs, sin todo el confuso anidamiento de Emacs-inside-term-inside-Emacs.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım