Emacs で一時バッファを強制終了する前に警告を受け取るにはどうすればよいですか?

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

  •  01-07-2019
  •  | 
  •  

質問

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

役に立ちましたか?

解決

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

のドキュメントを見ると、 バッファファイル名 分かるでしょう:

  • 変数が次の場合に限り、バッファはファイルにアクセスしません。 buffer-file-name ゼロです

その洞察を利用して関数を作成します。

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

他のヒント

(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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top