我怎么会得到一个警告之前杀死一个暂时的缓冲区在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