如何在特定位置使用缓冲区文件清除所有缓冲区?
问题描述:
如何在特定位置使用缓冲区文件清除所有缓冲区?如何在特定位置使用缓冲区文件清除所有缓冲区?
例如,我要杀死缓冲文件在C的所有缓冲区:... \ dev的所有dired缓冲子目录到c:\ dev的
,还是别人的话,如何去虽然emacs中所有缓冲区的文件或目录?
谢谢@David @phils。我结合elisp的代码和功能ibuffer
(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))
答
从elisp的使用:
(mapc (lambda (buffer)
(let ((file-name
(or (buffer-file-name buffer)
;; In dired-mode we need `dired-directory' which
;; might be a list and may not be fully expanded.
(with-current-buffer buffer
(and (eq major-mode 'dired-mode)
(expand-file-name
(if (consp dired-directory)
(car dired-directory)
dired-directory)))))))
(when (and file-name
(string-match "^c:\\\\.*\\\\dev" file-name))
(kill-buffer buffer))))
(buffer-list))
如果它是一个偶然的要求,我会使用'ibuffer'与模式匹配的文件路径标记所有缓冲区,并杀死标记的缓冲区。 – phils
它的工作原理。但我想定期做。 – Shuguang