我经常使Emacs(实际上是Aquamacs)保持打开状态,并出现很多缓冲区,使我的自动完成功能变得混乱不堪。我希望能够将它们全部关闭并重新开始。现在我退出并重新打开Emacs,但这感觉不对。
有没有办法关闭Emacs中的所有缓冲区?
这是Emacs 24.4 / Aquamacs 3.2。
以下功能是由用户名Starkey在stackoverflow上的一个相关问题中编写的:https : //stackoverflow.com/a/3417472/2112489
(defun close-all-buffers ()
(interactive)
(mapc 'kill-buffer (buffer-list)))
编辑:正如@Drew在下面的注释中所建议的那样,通常最好保留内部缓冲区,其名称中具有前导空格。doc字符串提供了有关此功能如何工作的说明。键的键盘快捷F5
键只是一个示例,用于结合通用参数测试功能。
(defun custom-kill-buffer-fn (&optional arg)
"When called with a prefix argument -- i.e., C-u -- kill all interesting
buffers -- i.e., all buffers without a leading space in the buffer-name.
When called without a prefix argument, kill just the current buffer
-- i.e., interesting or uninteresting."
(interactive "P")
(cond
((and (consp arg) (equal arg '(4)))
(mapc
(lambda (x)
(let ((name (buffer-name x)))
(unless (eq ?\s (aref name 0))
(kill-buffer x))))
(buffer-list)))
(t
(kill-buffer (current-buffer)))))
(global-set-key [f5] 'custom-kill-buffer-fn)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句