Wie halte ich den EMACS -Server auf dem Laufenden, wenn das aktuelle Fenster mit EMACSW32 unter Windows geschlossen ist?

StackOverflow https://stackoverflow.com/questions/2001485

  •  18-09-2019
  •  | 
  •  

Frage

Ich benutze EMACSW32 (Patched) unter Windows. EMACS wird im Servermodus ausgeführt, sodass nachfolgende Anrufe bei EMACSClientW -Dateien in derselben Serversitzung geöffnet werden.

Ich habe CX CC Zugeordnet, um den aktuellen Frame unsichtbar zu machen und den EMACS -Serverprozess nicht zu töten. Ich würde gerne auf das Fenster klicken X (Schließen) Taste, um auch den Rahmen zu verbergen und den Serverprozess nicht wie derzeit zu beenden.

Irgendwelche Ideen ? Vielen Dank!

War es hilfreich?

Lösung

Sicher, ich habe eine Methode dazu. Möglicherweise gibt es Verfeinerungen, aber dies ist ein guter Ausgangspunkt.

Zunächst habe ich eine Variable eingerichtet und die Funktion der Kill-EMACs beraten

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

Die BNB/Exit -Funktion macht den Rahmen nur unsichtbar, wie Sie es gebunden haben CX CC.

Ich habe dann eine zusätzliche Funktion, um EMACs ordnungsgemäß zu beenden, wenn dies jemals notwendig ist. Dadurch wird die Variable festgelegt und Kill-Emacs wie folgt aufgerufen.

(defun bnb/really-kill-emacs ()
    (interactive)
    (setq bnb/really-kill-emacs t)
    (kill-emacs))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top