2010-12-10 5 views
2

Ich öffne sehr oft eine Menge Explorer Explorer-Fenster (entweder unter Linux oder Windows). Dann mache ich eine große Säuberung und schließe alles. Oft schließe ich Emacs auch versehentlich.Emacs: Schließen von Fenstermanager-Taste verhindern

Ich möchte das Verhalten der 'X' Schaltfläche zu minimieren, anstatt zu schließen (nur auf C-x C-c verlassen). Ich bin mir fast sicher, dass es möglich ist, aber ich weiß nicht wie. Jemand zu helfen?

Antwort

1

Eine Möglichkeit, dies zu erreichen, ist die Verwendung des Bestätigungs-Kill-Emacs-Mechanismus: Dies ist eine Funktion, die den Benutzer nach einer Bestätigung zum Töten von Emacs fragt. Anstatt jedoch eine interaktive Funktion zu verwenden, können Sie eine spezielle Variable einführen, die nur dann wahr ist, wenn der Befehl kill über C-x C-c aufgerufen wurde und die Funktion confirm simple den Wert dieser Variablen zurückgibt.

folgend Setzen Sie in Ihrer .emacs-Datei:

(defvar killed-from-keyboard nil) 

(setq confirm-kill-emacs '(lambda (prompt) killed-from-keyboard)) 

(defun save-buffers-kill-emacs-from-keyboard (&optional arg) 
    (interactive) 
    (condition-case nil 
     (progn (setq killed-from-keyboard t) 
      (save-buffers-kill-terminal arg)) 
    ((quit error) 
    (setq killed-from-keyboard nil)))) 

(global-set-key [(control x) (control c)] 'save-buffers-kill-emacs-from-keyboard) 
1

Wenn Sie die Kill-Emacs-Funktion beraten, dann können Sie die Funktionalität, die Sie wünschen. Ich habe einen Code, der meinen Emacs-Frame unsichtbar (versteckt) macht, aber Sie können ihn stattdessen mit einem Code ähnlich dem Folgenden ikonifizieren.

(defvar bnb/really-kill-emacs nil) 
(defadvice kill-emacs (around bnb/really-exit activate) 
    "Only kill emacs if a prefix is set" 
    (if bnb/really-kill-emacs 
     ad-do-it) 
    (iconify-frame)) 

(defun bnb/really-kill-emacs() 
    (interactive) 
    (setq bnb/really-kill-emacs t) 
    (kill-emacs)) 

Das bnb/wirklich-kill-Emacs-Funktion definiert ist, so dass Sie tatsächlich Emacs töten können, wenn nötig.

Verwandte Themen