¿Cómo ejecutar 'emacs' en el emulador de terminal sin una ventana separada?


16

Estoy buscando cambiar a Emacs desde Vim y una cosa que me mantiene alejado es que Emacs abre una ventana propia cuando se ejecuta bajo X. ¿Puedo obtener el mismo comportamiento para Emacs que cuando no se ejecuta bajo X? Es decir, quiero que Emacs inicie la sesión en la misma terminal en la que se disparó.

Avíseme si la pregunta no está clara. ¡Gracias de antemano!

Respuestas:


34

No soy un experto en emacs, pero esto me sirvió:

emacs -nw

77
Tienes razón, para el curioso -nw es la abreviatura de --no-window-system que le dice a emacs que no use su interfaz X.

@Mic: Gracias por la explicación, de esta manera recordaré lo que significa
Alberto Zaccagni

16

Es posible que prefiera iniciar emacs como emacs --daemony luego usarlo emacsclient -tpara editar archivos. Esto mantiene Emacs cargado en segundo plano, para que pueda usar Emacs más como vi. Las sesiones de edición se iniciarán instantáneamente, y "salir" a través de Cx Cc cerrará la conexión actual. Es muy bonito.


5

Aunque su pregunta ha sido respondida, me atrevería a decir que esta no es la forma en que cualquier usuario habitual usaría emacs. A diferencia de vim, emacs generalmente tiene un tiempo de inicio más largo y, de todos modos, tiende a ejecutarse todo el tiempo con múltiples buffers abiertos. Entonces, cuando desee hacer algo con emacs en una terminal, invoque emacsclient -nw(suponiendo que se haya iniciado un servidor emacs). Vea cómo comenzar a usar EmacsClient para obtener más detalles.


2

Si usa bash, siempre puede agregar lo siguiente a su .bashrc

alias emacs = "emacs -nw"

Eso me ahorró mucho escribir (y maldecir cuando olvido escribir los interruptores).


1

Combinando las respuestas anteriores de Dick Kenny y Alberto Zaccagni, obtienes la siguiente configuración que uso en .bashrc:

alias emacs='emacsclient -nw -c -a ""'

Esto intentará conectarse a un demonio emacs en ejecución. Si no se está ejecutando ninguno, iniciará uno nuevo y luego se conectará utilizando la ventana de terminal actual.

De los documentos:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame

1
Cuando pruebo este comando, Emacs no se inicia, en su lugar me da una advertencia acerca de que no hay un servidor al que conectarse, seguido de un volcado gigante de valores y Emacs no se inicia.
Koz Ross el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.