【发布时间】:2015-09-28 11:37:05
【问题描述】:
如何用缓冲区文件在某个位置杀死所有缓冲区?
例如,我想杀死 c:...\dev 中带有缓冲区文件的所有缓冲区以及 c:...\dev 中的所有 dired 缓冲区子目录
或者换句话说,如何遍历emacs中所有缓冲区的文件或目录?
感谢@David @phils。我在ibuffer中结合了elisp代码和函数
(mapc (lambda (buffer)
(let ((file-name
(or (buffer-file-name buffer)
(with-current-buffer buffer
(and
(boundp 'dired-directory)
(stringp dired-directory)
dired-directory))
)))
(when (and file-name
(string-match "^c:.*?\\\\dev" file-name))
(kill-buffer buffer))))
(buffer-list))
【问题讨论】:
-
如果是偶尔需要,我会使用
ibuffer来标记所有具有匹配模式的文件路径的缓冲区,然后杀死标记的缓冲区。 -
它有效。但我想定期做。