¿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!

Amit Saha
fuente

Respuestas:

34

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

emacs -nw
Alberto Zaccagni
fuente
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.

jrockway
fuente
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.

Raja
fuente
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).

Dick Kennedy
fuente
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
Heinrich Hartmann
fuente
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