我找到了一个可以关闭所有dired缓冲区的片段,我想在日出指挥官中使用它:
(defun er/kill-all-dired-buffers()
"Kill all dired buffers."
(interactive)
(save-excursion
(let((count 0))
(dolist(buffer (buffer-list))
(set-buffer buffer)
(when (equal major-mode 'sr-mode)
(or (equal major-mode 'dired-mode))
(setq count (1+ count))
(kill-buffer buffer)))
(message "Killed %i dired buffer(s)." count ))))
(setq sr-quit-hook 'er/kill-all-dired-buffers)问题是,我不能让它同时适用于sr模式和dired模式。如何检查“主模式是sr模式还是dired模式”?
编辑:只是语法错误。应该是
(when (or (equal major-mode 'dired-mode) (equal major-mode 'sr-mode))必须承认这不是太直观。
发布于 2013-04-26 21:35:59
典型的方式是(when (derived-mode-p 'sr-mode 'dired-mode) ...)。
发布于 2016-09-09 16:39:47
我尝试了一些东西,发现这对我的emacs-ielm -也许也有帮助:
(if (member major-mode '(fsharp-mode c-mode java-mode inferior-emacs-lisp-mode))
(message "yeah right"))发布于 2018-04-02 15:56:19
也许正确的检查功能是:
(derived-mode-p &rest MODES)见“Subr.el”。
https://stackoverflow.com/questions/16242391
复制相似问题