¿Cómo abrir un archivo desde la línea de comando bash en Emacs ya abierto en lugar de una nueva instancia? cuando escribo
$ emacs file.txt
abre una nueva instancia de Emacs, en lugar de abrir el archivo en la instancia de Emacs existente. MacOS X 10.6.8. y
GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)
del 27/02/2012 en beta.macosforge.org
Respuesta1
lo que buscas es el modo servidor emacs. Agregue esta línea a su archivo .emacs:
(server-start)
Luego, abra el archivo usando emacsclient:
emacsclient foobar.txt
Mira estoestepágina para más información.
Para evitar tener que iniciar emacs manualmente o configurarlo para que se inicie automáticamente, puede escribir una pequeña función que intente conectarse a un servidor en ejecución (ejecutando emacsclient
) y, si no, se ejecute emacs
en su lugar. Agregue esto al archivo de configuración de su shell (por ejemplo ~/.bashrc
):
emacs(){
emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@"
}
Ahora, simplemente ejecutar emacs file
iniciará el servidor o se conectará a una instancia existente.
Respuesta2
Me temo que no recuerdo dónde encontré la siguiente solución. Lo siento. Sin embargo, como funcionó de manera óptima para mí, lo agrego aquí.
Asegúrese de .emacs
iniciar el servidor emacs.
(server-start)
A continuación, defina .bashrc
la función:
function run_emacs
{
/usr/bin/emacsclient "$1" &
}
y establecer las variables de entorno:
export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs
Finalmente, defina el alias:
alias emacs='run_emacs'