8
不止一次,我在Emacs中意外地殺死一個臨時緩衝區而失去了工作。當我殺死一個不與文件關聯的緩衝區時,可以設置Emacs給我一個警告嗎?如何在Emacs中殺死臨時緩衝區之前發出警告?
不止一次,我在Emacs中意外地殺死一個臨時緩衝區而失去了工作。當我殺死一個不與文件關聯的緩衝區時,可以設置Emacs給我一個警告嗎?如何在Emacs中殺死臨時緩衝區之前發出警告?
創建一個函數,詢問您是否確定何時編輯緩衝區並且不與文件關聯。然後將該函數添加到列表kill-buffer-query-functions
。
望着文檔Buffer File Name你明白:
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)
這工作,但我不得不刪除「緩衝」的說法。 – 2008-09-17 20:36:04