Establecer VISUAL
en emacsclient -c
(o alguna otra variación sin -n
).
La opción -n
hace emacsclient
que regrese tan pronto como se contacte con la instancia de Emacs en ejecución para indicarle que edite el archivo. El programa que llama al editor (aquí, zsh, pero esto se aplica por igual a cualquier otro programa que invoque $VISUAL
) sabe que ha terminado de editar porque el programa que invocó ha salido, lo que, con -n
, ocurre esencialmente de inmediato.
Debe hacer que el programa invocado VISUAL
salga cuando haya terminado de editar, es decir, cuando cierre el búfer en Emacs. Eso es exactamente lo que emacsclient
no -n
hace: se pone en contacto con la instancia de Emacs en ejecución para decirle que abra el archivo, luego se sienta hasta que Emacs responde para decirle a emacsclient que la sesión de edición ha finalizado. La forma normal de terminar una sesión de edición es presionar C-x #
( server-edit
). Esto notifica a emacsclient y cierra el búfer, así como el marco cuando fue abierto por emacsclient -c
. Al cerrar el búfer también se notifica al proceso de emacsclient que la sesión ha finalizado, pero aparece un mensaje de advertencia ("¿El búfer ... todavía tiene clientes, lo mata?"), Que puede deshabilitar anulando la función server-kill-buffer-query-function
(RMS cree que es peligroso). En un marco abierto poremacsclient -c
, presionando C-x C-c
( save-buffers-kill-terminal
) guarda el archivo, lo cierra y cierra el marco.
-n
también evitará que emacsclient funcione como editor para git.