8

Emacsの一時バッファを誤って強制終了して作業を失ったことが何度もあります。ファイルに関連付けられていないバッファを強制終了したときに警告を表示するようにEmacsを設定できますか?

4

2 に答える 2

10

いつバッファが編集され、ファイルに関連付けられていないかを確認する関数を作成します。次に、その関数をリストに追加しますkill-buffer-query-functions

Buffer File Nameのドキュメントを見ると、次のことがわかります。

  • buffer-file-name変数が nilの場合にのみ、バッファはファイルを訪問していません

その洞察を使用して関数を記述します。

(defun maybe-kill-buffer ()
  (if (and (not buffer-file-name)
           (buffer-modified-p))
      ;; buffer is not visiting a file
      (y-or-n-p "This buffer is not visiting a file but has been edited.  Kill it anyway? ")
    t))

そして、次のように関数をフックに追加します。

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer)
于 2008-09-17T20:07:39.860 に答える
1
(defun maybe-kill-buffer ()
  (if (and (not buffer-file-name)
           (buffer-modified-p))
      ;; buffer is not visiting a file
      (y-or-n-p (format "Buffer %s has been edited.  Kill it anyway? "
                        (buffer-name)))
    t))

(add-to-list 'kill-buffer-query-functions 'maybe-kill-buffer)
于 2008-09-17T20:29:00.573 に答える