49 votes

Comment démarrer le serveur emacs uniquement s'il n'est pas démarré?

Je voudrais utiliser emacsclient pour modifier les e-mails dans Mutt.

J'ai ajouté ceci dans .emacs

(server-start)

Et dans .muttrc j'ai ajouté

set editor="emacsclient -nw %s"

Il semble qu'ils fonctionnent. Lorsque je démarre un deuxième Emacs, il se plaint qu'il y a déjà un serveur en cours d'exécution et émet donc des erreurs. Comment être sûr de ne faire (server-start) que si le serveur n'est pas déjà démarré?

Merci

66voto

Philipp Points 21479

Ce code démarre le serveur uniquement s'il n'est pas en cours d'exécution:

 (load "server")
(unless (server-running-p) (server-start))
 

54voto

Bozhidar Batsov Points 23298

Le démon emacs peut être démarré automatiquement de manière très simple. Ajoutez simplement ceci à votre .bashrc / .zshrc / peu importe

 export ALTERNATE_EDITOR=""
 

Maintenant, lorsque vous appelez emacsclient -t / -c, le serveur sera démarré (avec emacs --daemon) s'il n'est pas déjà en cours d'exécution.

Je trouve aussi cet alias de shell pratique

 alias e='emacsclient -t'
 

Notez que depuis Emacs 23, c'est la façon préférée d'utiliser Emacs en mode démon. (start-server) est désormais obsolète.

15voto

Eldritch Cheese Points 189

Une réponse un peu tardive, mais voici la solution qui me convient. Chaque fois que je démarre emacsclient, j'utilise emacsclient -a '' -c Le -a '' indique à emacsclient d'essayer de se connecter à un serveur existant, et si aucun serveur n'existe, démarrez-en un puis connectez-vous.

7voto

Dirk Eddelbuettel Points 134700

Évitez le problème ensemble via

 emacs --daemon
 

dans n'importe quel shell ou terminal afin qu'Emacs s'exécute en arrière-plan. De cette façon, emacsclient est toujours heureux car il y a toujours un serveur Emacs auquel se connecter.

Cela étant Emacs, il existe également une fonction qui démarre le serveur uniquement en cas de besoin, mais je ne me souviens pas vraiment de son nom pour le moment. J'utilise l'option --daemon heureusement très heureusement moi-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X