Comment exécuter 'emacs' dans l'émulateur de terminal sans fenêtre séparée?

16

Je cherche à passer à Emacs de Vim et une chose qui me tient à l'écart est qu'Emacs ouvre une fenêtre distincte lorsqu'il est exécuté sous X. Puis-je obtenir le même comportement pour Emacs que lorsqu'il ne fonctionne pas sous X? Autrement dit, je veux qu'Emacs démarre la session dans le même terminal que celui dans lequel il a été déclenché.

Faites-moi savoir si la question n'est pas claire. Merci d'avance!

Amit Saha
la source

Réponses:

34

Je ne suis pas un expert emacs, mais cela a fait l'affaire pour moi:

emacs -nw
Alberto Zaccagni
la source
7
Vous avez raison, car le curieux -nw est l'abréviation de --no-window-system qui dit à emacs de ne pas utiliser son interface X.
@Mic: Merci pour l'explication, de cette façon je me souviendrai de ce que cela signifie
Alberto Zaccagni
16

Vous préférerez peut-être démarrer emacs as emacs --daemonpuis l'utiliser emacsclient -tpour modifier des fichiers. Cela maintient Emacs chargé en arrière-plan, de sorte que vous pouvez utiliser Emacs plus comme vi. Les sessions d'édition démarreront instantanément et la «fermeture» via Cx Cc fermera simplement la connexion actuelle. C'est vraiment bien.

jrockway
la source
5

Bien que votre question ait reçu une réponse, je me risquerais à dire que ce n'est pas la façon dont un utilisateur régulier utiliserait emacs. Contrairement à vim, emacs a généralement un temps de démarrage plus long et a de toute façon tendance à s'exécuter tout le temps avec plusieurs tampons ouverts. Alors , quand vous voulez faire quelque chose avec emacs dans un terminal, vous invoquez emacsclient -nw( en supposant un emacs serverhas commencé). Regardez comment commencer à utiliser EmacsClient pour plus de détails.

Raja
la source
2

Si vous utilisez bash, vous pouvez toujours ajouter ce qui suit à votre .bashrc

alias emacs = "emacs -nw"

Cela m'a fait économiser beaucoup de frappe (et de jurons quand j'oublie de taper les commutateurs).

Dick Kennedy
la source
1

En combinant les réponses ci-dessus de Dick Kenny et Alberto Zaccagni, vous obtenez la configuration suivante que j'utilise dans .bashrc:

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

Cela tentera de se connecter à un démon emacs en cours d'exécution. Si aucun n'est en cours d'exécution, il en démarrera un nouveau, puis se connectera à l'aide de la fenêtre de terminal actuelle.

De la documentation:

-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
la source
1
Lorsque j'essaie cette commande, Emacs ne démarre pas, au lieu de cela, il m'avertit qu'il n'y a pas de serveur auquel se connecter, suivi d'un vidage géant des valeurs et Emacs ne démarre pas.
Koz Ross