¿Cómo uso emacsclient como EDITOR o VISUAL?

Pregunta:

Escenario: estoy en zsh y quiero editar un comando de shell largo en una instancia ya abierta de Emacs. Establecí $VISUAL en emacsclient -n -c . Cuando ejecuto Cx Ce desde zsh, se abre un nuevo marco de Emacs, poblado con el contenido de la línea zsh. Después de editar y guardar el búfer, Cx k , y el búfer se cierra. La línea zsh permanece sin cambios . ¿Por qué zsh no reconoce los cambios realizados en Emacs?

Emacs 24.5.1, zsh 5.0.8, Mac OS X 10.10.4

Respuesta:

Establezca VISUAL en emacsclient -c (o alguna otra variación sin -n ).

La opción -n hace que emacsclient regrese tan pronto como se contacte con la instancia de Emacs en ejecución para decirle que edite el archivo. El programa que llama al editor (aquí, zsh, pero esto se aplica igualmente 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.

Necesita hacer arreglos para que el programa invocado a través de VISUAL salga cuando haya terminado de editar, es decir, cuando cierre el búfer en Emacs. Eso es exactamente lo que hace emacsclient sin -n : contacta con la instancia de Emacs en ejecución para decirle que abra el archivo, luego se queda sentado hasta que Emacs responde para decirle a emacsclient que la sesión de edición ha terminado. La forma normal de finalizar una sesión de edición es presionar Cx # ( server-edit ). Esto notifica a emacsclient y cierra el búfer, así como el marco cuando fue abierto por emacsclient -c . Cerrar el búfer también notifica al proceso emacsclient que la sesión ha finalizado, pero aparece un mensaje de advertencia ("El búfer … todavía tiene clientes, ¿matarlo?"), Que puede deshabilitar anulando la función server-kill-buffer-query-function (RMS cree que es peligroso). En un marco abierto por emacsclient -c , presionar Cx Cc ( save-buffers-kill-terminal ) guarda el archivo, lo cierra y cierra el marco.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım