如何让Emacs缓冲区堆栈忽略某些类型的文件?

时间:2013-03-07 09:12:47

标签: emacs

在Emacs中,我使用一个名为buffer-stack的东西来查看和浏览我的开放缓冲区,如果我不知道我想要什么缓冲区,这很有用,但我只是想直观地看到开放缓冲区(实际内容,而不是文件名)。我有buffer-stack-up的一个键绑定和buffer-stack-down的另一个键绑定,这允许我在它们之间向左和向右滚动。

我想从这种行为中排除某些类型的缓冲区。我已经可以通过在名为buffer-stack-untracked的变量中指定完整的缓冲区名称来排除特定缓冲区,例如我可以将*Messages*标记为未跟踪。

如何使用REGEXP将某些缓冲区指定为未跟踪?例如,我想排除包含REGEXP Help.html的缓冲区,即使我无法预测整个文件名。

我该怎么做?如果使用buffer-stack无法做到这一点,那么什么包会给我我想要的行为?

1 个答案:

答案 0 :(得分:2)

我相信这将是一个很好的起点。

(defun buffer-stack-filter-regexp (buffer)
  "Non-nil if buffer is in buffer-stack-tracked."
  (not (or (string-match "Help\\|html" (buffer-name buffer))
           (member buffer buffer-stack-untracked))))
(setq buffer-stack-filter 'buffer-stack-filter-regexp)