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!

Réponses:


34

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

emacs -nw

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.


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.


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


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.