Comment puis-je garder le serveur emacs fonctionnement lorsque la fenêtre est fermée actuelle (x) sur les fenêtres à l'aide EmacsW32?
Question
J'utilise EmacsW32 (patché) sur les fenêtres. Emacs est en cours d'exécution en mode serveur afin que les appels suivants à emacsclientw fichiers ouverts dans la même session du serveur.
je C-C-x c mappée pour faire la trame courante invisible et ne tue pas le processus serveur emacs. Je voudrais en cliquant de la fenêtre X (fermer) aussi simplement cacher le cadre et ne pas mettre fin au processus de serveur comme il le fait actuellement.
Toutes les idées? Merci!
La solution
Bien sûr, j'ai une méthode de le faire. Il peut y avoir raffinements possibles, mais cela est un bon point de départ.
Tout d'abord, je configurer une variable et conseille la fonction kill-emacs
(defvar bnb/really-kill-emacs nil)
(defadvice kill-emacs (around bnb/really-exit activate)
"Only kill emacs if the variable is true"
(if bnb/really-kill-emacs
ad-do-it)
(bnb/exit))
La fonction ENB / de sortie est tout simplement le cadre invisible comme ce que vous avez lié à C-x C-c .
J'ai alors une fonction supplémentaire correctement emacs de sortie si c'est toujours nécessaire. Cela fixeront les variables et appels kill-emacs comme suit.
(defun bnb/really-kill-emacs ()
(interactive)
(setq bnb/really-kill-emacs t)
(kill-emacs))