Establecer VISUALen emacsclient -c(o alguna otra variación sin -n).
La opción -nhace emacsclientque 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 VISUALsalga cuando haya terminado de editar, es decir, cuando cierre el búfer en Emacs. Eso es exactamente lo que emacsclientno -nhace: 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.
-ntambién evitará que emacsclient funcione como editor para git.