2010-12-10 11 views
2

多くの場合、(LinuxまたはWindowsの下で)たくさんのファイルシステムエクスプローラウィンドウを開きます。それから私は大きな掃除をしてすべてを閉じます。しばしば、私は間違ってEmacsを閉じます。Emacs:ウィンドウマネージャーボタンからのクローズを防ぐ

「X」ボタンの動作を閉じるのではなく、最小限にするように変更したいのですが(C-x C-cのままにしておきます)。私はそれが可能であるとほとんど確信していますが、私はどのようにわからない。誰でも助けてくれますか?

答えて

1

これを実現する1つの方法は、confirm-kill-emacsメカニズムを使用することです(abac)。これはemacsの殺害に関する確認をユーザに求める機能です。ただし、対話型関数を使用する代わりに、killコマンドがC-x C-cによって呼び出された場合にのみtrueの特殊変数を導入することができます。また、confirm関数simpleはその変数の値を返します。

あなたの.emacsファイルに次のように置く:あなたはキル・Emacsの機能を助言する場合は、あなたが望む機能を得ることができます

(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

。私のemacsフレームを非表示(非表示)にするコードがありますが、代わりに次のようなコードでアイコン化できます。

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

必要なときに、あなたが実際にEmacsを殺すことができるようにBNB /本当に殺す-emacsの機能が定義されています。

関連する問題