2010-07-13 14 views
7

Utilizo un daemon de emacs para conservar mi sesión de emacs incluso si tengo que reiniciar la máquina en la que ejecuto mi servidor X o si quiere acceder a la misma sesión desde una máquina diferente. Esto funciona muy bien, pero cuando restauro una sesión me gustaría simplemente ejecutar "emacsclient --create-frame --no-wait" para conectarme al daemon sin abrir un nuevo archivo. No me dejará escapar sin especificar un nombre de archivo.Cómo puedo hacer que emacsclient abra una ventana para un demonio emacs existente sin abrir un nuevo archivo

He intentado usar --eval para ejecutar una función en lugar de abrir un archivo, pero la ventana simplemente desaparece cuando se completa la evaluación.

(Emacs 23.1 a través de backports sobre Debian GNU/Linux 5.0.)

+0

Creo que esta pregunta es más adecuado para http://superuser.com/ –

+0

Gracias por la respuestas integrales, ¡especialmente para no señalar que simplemente no estaba despistado! Parece que estaba equivocado al decir que "emacsclient --create marco --no-wait" no funciona debido a la falta de nombre de archivo. Debo haber conseguido una mezcla de emacs y versiones de emacsclient (emacsclient de v22 parece requerir el nombre del archivo, pero tiene sentido en esa versión.) –

Respuesta

11

Con la ayuda de emacsclient, tiene algunas opciones. Primero, ya se mencionó el que es emacsclient -c. Eso intentará crear un marco asociado con el daemon de emacs. La ventaja de esto es que si DISPLAY no está configurado, entonces abrirá emacs en el terminal.

Lo que nos lleva a la siguiente mejor opción (especialmente si está iniciando sesión de forma remota): emacsclient -t que fuerza a emacs a abrirse en modo terminal incluso si está configurado DISPLAY.

Además, tenga en cuenta que también puede configurar la pantalla desde la línea de comandos. Lo uso a menudo al iniciar sesión de forma remota desde VNC. El comando completo sería emacsclient -d DISPLAY -c

2

emacsclient -n -e "(make-frame)"

La bandera -n significa que el emacsclient no espera, y la instancia emacs no destruye la trama.

5

emacsclient -c funciona para mí.

+0

Hmm. Lo hace por mí también. Estoy seguro de que no funcionó cuando lo probé en dos ocasiones anteriores, pero ahora no puedo reproducirlo. :( –

2

Si está usando emacs desde la línea de comandos, es posible que también desee considerar emacsclient -t

Cuestiones relacionadas