[ < ] | [ > ] | [ << ] | [ 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 abril, 2 2007 using texi2html 1.76.