| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Diversos programas como mail pueden invocar su editor preferido
para editar cierto texto, por ejemplo un mensaje que esté enviando. Por
convención, la mayoría de dichos programas usan la variable de entorno
EDITOR para especificar qué editor ejecutar. Si establece
EDITOR como `emacs', invocan a Emacs, pero de forma
incómoda, iniciando un proceso nuevo, aparte, de Emacs. Esto es
incómodo porque demora tiempo y porque el nuevo proceso de Emacs no
comparte los búferes con ningún proceso existente de Emacs.
Ud. puede preparar que se utilice su proceso existente de Emacs como
editor en los programas como mail utilizando el cliente Emacs y
el servidor Emacs. Éste es el método.
Primero, la preparación. Dentro de Emacs, llame a la función
server-start. (Su archivo `.emacs' lo puede hacer automáticamente
si le agrega la expresión (server-start).) Luego, fuera de
Emacs, establezca la variable de entorno EDITOR como `emacsclient'.
(Observe que algunos programas usan otra variable de entorno; por ejemplo,
para hacer que TeX utilice `emacsclient', ud. debe establecer la
variable de entorno TEXEDIT a `emacsclient +%d %s'.)
Entonces, siempre que algún programa invoque su programa especificado en
EDITOR, el efecto será enviar un mensaje a su Emacs principal diciendo
que visite un archivo. (Eso es lo que hace el programa emacsclient.)
Emacs muestra el búfer inmediatamente y ud. puede comenzar a editarlo
inmediatamente.
Cuando haya terminado de editar dicho búfer, teclee C-x #
(server-edit). Esto guarda el archivo y devuelve un mensaje
al programa emacsclient ordenándole que salga. Los programas
que utilizan EDITOR esperan que el "editor" (en realidad, emacsclient)
salga. C-x # también revisa otros pedidos externos pendientes para
editar diversos archivos, y selecciona el siguiente de dichos archivos.
Ud. puede pasarse a un búfer del servidor manualmente si quiere; no necesita llegar a él con C-x #. Pero C-x # es el modo de decir que ha acabado con uno.
Acabar con un búfer del servidor también mata el búfer, salvo que ya
existiese en la sesión de Emacs antes que el servidor pidiera crearlo.
Sin embargo, si ajusta server-kill-new-buffers a nil,
se usará un critero diferente: acabar con un búfer del servidor lo
mata si el nombre de archivo concuerda con la expresión regular
server-temp-file-regexp. La misma está configurada para distinguir
ciertos archivos "temporales".
Si asigna a la variable server-window una ventana o marco,
C-x # muestra el búfer del servidor en dicha ventana o marco.
Mientars mail u otra aplicación está esperando que
emacsclient termine, emacsclient no lee entrada de la
terminal. Entonces la terminal que mail usaba está efectivamente
bloqueada por ese tiempo. Para editar con su Emacs principal, necesita
poder usarlo sin emplear dicha terminal. Hay tres maneras de hacer esto:
mail y el Emacs principal
en dos ventanas aparte. Mientras mail espera a emacsclient,
la ventana donde corre está bloqueada, pero ud. puede usar Emacs cambiando
de ventana.
mail en una terminal virtual y
Emacs en otra.
mail; entonces, emacsclient bloquea únicamente la
subshell bajo Emacs, y ud. todavía puede utilizar Emacs para editar el
archivo.
Si corre emacsclient con la opción `--no-wait', regresa
automáticamente sin esperar que ud. "termine" el búfer con Emacs. Observe
que los búfers del servidor creados de esta forma no se matan automáticamente
cuando termina con ellos.
AD.17 Invocación de emacsclient |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Roberto on enero, 3 2007 using texi2html 1.76.