xev*_*ent 29
除非已修改缓冲区,否则这将在不确认的情况下终止当前可见缓冲区.在最后一种情况下,您必须回答y/n.
(global-set-key [(control x) (k)] 'kill-this-buffer)
Run Code Online (Sandbox Code Playgroud)
我用这个
(defun volatile-kill-buffer ()
"Kill current buffer unconditionally."
(interactive)
(let ((buffer-modified-p nil))
(kill-buffer (current-buffer))))
(global-set-key (kbd "C-x k") 'volatile-kill-buffer) ;; Unconditionally kill unmodified buffers.
Run Code Online (Sandbox Code Playgroud)
除非修改,否则它将杀死缓冲区。
好的,我在Emacs手册中做了一些查找,找到了一个可行的解决方案(从Emacs 23.4.1开始)。这几乎与Noufal的解决方案相同:
(defun kill-this-buffer-volatile ()
"Kill current buffer, even if it has been modified."
(interactive)
(set-buffer-modified-p nil)
(kill-this-buffer))
Run Code Online (Sandbox Code Playgroud)
我对该函数进行了重命名,使其更接近于kill-this-buffer
。
显然,EmacsWiki在http://www.emacswiki.org/emacs/KillBufferUnconditionally(在2007年进行了修改)上有一个有关此主题的页面,但是代码只是Noufal的一个副本。