TES: Emacs Server

emacs

A menudo se nos abren muchos Emacs cuando sólo queremos tener uno, y se termina haciendo inusable. Si ya tenemos pestañas con el paquete tabbar, ¿para qué queremos tener varios emacs abiertos?

Ingredientes

Emacs ya trae los ingredientes que nos hacen falta hoy.

Servidor

Vamos a comenzar por la manera fácil: abrimos un Emacs y lanzamos la orden siguiente:

M-x server-start

Ya hemos arrancado un servidor en Emacs. También podemos ponerlo en nuestro .emacs haciendo que se arranque automáticamente mediante:

(server-start)

Cliente

Si tenemos un servidor es porque vamos a tener un cliente, como es lógico. En este caso se llamará emacsclient. En lugar de editar con "emacs", lo haremos con "emacsclient" y arreglado.

Cliente-Servidor todo en uno

Es un rollo eso de tener que decidir si vamos a utilizar emacs o emacsclient... ¡Yo sólo quiero un editor! Además el nombre de "emacsclient" es demasiado largo...

Vamos a probar a hacer lo siguiente: Primero cerramos todos los emacs que tengamos abiertos, y después lanzamos las órdenes siguientes (espero que hayáis puesto el (server-start) en vuestro .emacs):

$ emacsclient -n -a /usr/bin/emacs  ~/.bashrc &
$ emacsclient -n -a /usr/bin/emacs  ~/.bash_profile &

¡La primera vez se ha abierto un Emacs y la segunda se ha reutilizado! Esto va mejorando, ¿no?

Por cierto.. el -n es equivalente a --no-wait, para que no se quede pillao esperando a que cerréis el buffer y se os devuelva el control.

Más fácil. Más rápido

Ahora nos enfrentamos a una línea de órdenes atroz e insufriblemente larga que no vamos a volver a teclear en la vida. No problem. Siempre podemos hacernos un alias en nuestro .bashrc:

alias emacs=emacsclient -n -a /usr/bin/emacs

Existen otras dos formas que no he probado. La primera es utilizar la variable de entorno ALTERNATE_EDITOR y lanzar emacsclient todas las veces. La segunda está en un fichero que no sé cómo funciona llamado /etc/emacs.bash .

Referencias

El manual de Emacs.

Próxima semana:

La semana que viene veremos cómo funciona el sistema de comprobación ortográfica "al vuelo" que incorpora Emacs.