如何在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