Emacs client

L’idée est de démarrer une instance Emacs (le serveur), pour ensuite utiliser emacsclient afin d’ouvrire rapidement une nouvelle frame (fenêtre).

Pour l’activer on met (server-start) dans le fichier .emacs, ou on appel le serveur par M-x start.
Ou tout simplement on lance emacs avec :

$ emacs --daemon

qui démarrera en background.

Après cela, on peut démarrer un nouveau cadre (fenêtre) en utilisant :

$ emacsclient -c

ceci ouvrira une fenêtre graphique X ; mais si l’on veut une version console :

$ emacsclient -t

A noter que ce nouveau cadre n’est pas une nouvelle instance d’Emacs, mais bien un nouveau cadre (fenêtre) sur l’emacs déjà en marche.

On peut aussi spécifier un éditeur alternatif si emacs n’est pas déjà démarré :

$ emacsclient -c -a nano    # if all else fails... start nano

$ emacsclient -c -a ""    # if all else fails... start emacs daemon

bien sûr, on peut spécifier Emacs lui-même comme alternative :)

P.-S.

Enfin, si l’on veut fermer Emacs (quelle drôle d’idée !) il faut le faire à la main :

$ pkill -TERM -u $USER emacs

On peut aussi positionner certaines variables d’environnement pour que les autres programmes utilisent emacsclient :

  EDITOR="emacsclient -c"
  VISUAL="emacsclient -c"

Avec emacs —daemon il n’est plus nécessaire d’utiliser vi pour rapidement éditer des fichiers. En d’autres termes : alias vi="emacsclient -c".