题
超过一次我已经失去了工作意外杀死一个暂时的缓冲区在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)
不隶属于 StackOverflow