Come eseguire 'emacs' nell'emulatore di terminale senza una finestra separata?


16

Sto cercando di passare a Emacs da Vim e una cosa che mi tiene lontano è che Emacs apre una finestra separata quando viene eseguito sotto X. Posso ottenere lo stesso comportamento per Emacs come quando non funziona sotto X? Cioè, voglio che Emacs inizi la sessione nello stesso terminale di quello in cui è stato attivato.

Fammi sapere se la domanda non è chiara. Grazie in anticipo!

Risposte:


34

Non sono un esperto di emacs, ma questo ha fatto il trucco per me:

emacs -nw

7
Hai ragione, perché il curioso -nw è l'abbreviazione di --no-window-system che dice a emacs di non usare la sua interfaccia X.

@Mic: Grazie per la spiegazione, in questo modo ricorderò cosa rappresenta
Alberto Zaccagni,

16

Potresti preferire avviare emacs come emacs --daemone poi usarlo emacsclient -tper modificare i file. Ciò mantiene Emacs caricato in background, in modo da poter usare Emacs più come vi. Le sessioni di modifica verranno avviate all'istante e la "chiusura" tramite Cx Cc chiuderà semplicemente la connessione corrente. È molto carino.


5

Anche se alla tua domanda è stata data una risposta, mi permetto di dire che questo non è il modo in cui qualsiasi utente normale userebbe emacs. A differenza di vim, emacs generalmente ha un tempo di avvio più lungo e comunque tende ad essere sempre in esecuzione con più buffer aperti. Quindi quando vuoi fare qualcosa con emacs in un terminale, invochi emacsclient -nw(supponendo che sia stato avviato un server emacs). Guarda come iniziare a utilizzare EmacsClient per i dettagli.


2

Se usi bash, puoi sempre aggiungere quanto segue al tuo .bashrc

alias emacs = "emacs -nw"

Mi ha risparmiato molto a digitare (e imprecare quando dimentico di digitare gli switch).


1

Combinando le risposte di cui sopra di Dick Kenny e Alberto Zaccagni si ottiene la seguente configurazione che uso in .bashrc:

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

Questo tenterà di connettersi a un demone emacs runnning. Se nessuno è in esecuzione, ne avvierà uno nuovo, quindi si connetterà utilizzando la finestra del terminale corrente.

Dai documenti:

-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
Quando provo questo comando, Emacs non riesce ad avviarsi, invece mi avvisa che non esiste un server a cui connettersi, seguito da un gigantesco dump di valori e Emacs non si avvia.
Koz Ross,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.