¿Diferencia entre visitar un archivo a través de emacs o con emacsclient?

¿Diferencia entre visitar un archivo a través de emacs o con emacsclient?

La razón por la que pregunto es que la mayoría de las cosas parecen similares, excepto cuando se usa la extensión del editor externo Thunderbird (con el editor designado como emacsclient -c). Cerrar el marco creado con esta instancia de emacsclient con C-x C-c( C-x #¿a veces no funciona?) también eliminará el búfer asociado con este marco (no es el comportamiento habitual de emacsclient).

Y, en general, C-x C-csimplemente cerrará el marco a menos que se visite otro búfer en ese marco; después de esto, C-x C-cintentará cerrar todos los emacs. ¿Cómo trato de entender este comportamiento?

Respuesta1

Desde Emacs, puede obtener ayuda para cualquier tecla presionando Ch k y luego ingresando la combinación de teclas que desea conocer. Al presionar Ch k Cx # se devuelve esto:

Cx # ejecuta el comando server-edit, que es una función Lisp compilada interactiva en `server.el'.

Está vinculado a Cx#.

(edición del servidor y ARG opcional)

Cambie al siguiente búfer de edición del servidor; diga "Listo" para el búfer actual. Si un búfer del servidor está actual, se marca como "listo" y, opcionalmente, se guarda. El búfer también se elimina si no existía antes de que los clientes lo solicitaran. Cuando todos los buffers de un cliente están marcados como "listos", se notifica al cliente.

Los archivos temporales, como los archivos MH, siempre se guardan y se realiza una copia de seguridad, sin hacer preguntas. (La variable 'make-backup-files', si es nula, aún inhibe una copia de seguridad; puede configurarla localmente en un búfer particular para evitar que se realice una copia de seguridad). La variable 'server-temp-file-regexp' controla qué nombres de archivos se consideran temporales.

Si se invoca con un argumento de prefijo, o si no hay ningún proceso del servidor en ejecución, inicia el proceso del servidor y eso es todo. Invocado por Cx#. Cx # ejecuta el comando server-edit, que es una función Lisp compilada interactiva en 'server.el'.

Lo mismo para Cx Cc

Cx Cc ejecuta el comando save-buffers-kill-terminal, que es una función Lisp compilada interactiva en `files.el'.

Está ligado a Cx Cc,.

(guardar-buffers-kill-terminal y ARG opcional)

Ofrezca guardar cada búfer y luego elimine la conexión actual. Si el marco actual no tiene cliente, elimine el propio Emacs.

Con el prefijo ARG, guarde silenciosamente todos los buffers de visita de archivos y luego elimínelos.

Si emacsclient se inició con una lista de nombres de archivos para editar, entonces solo se pedirá que se guarden estos archivos.

información relacionada