修改缓冲区焦点控制(弹出缓冲区与显示缓冲区)

时间:2011-12-26 18:29:55

标签: emacs elisp

是否有一种简单的方法(通过defadvice或其他方式)来改变缓冲区的焦点行为,例如help,grep,是否会发生?特别是,我想修改M-x occur的行为,直接将我带到* Occur *缓冲区。某些模式(例如ESS)对这种“临时”缓冲区的显示提供了更细粒度的控制,但是对于没有提供这种控制的缓冲区是否有一般策略?

1 个答案:

答案 0 :(得分:3)

(add-hook 'occur-hook (lambda () (pop-to-buffer occur-buf)))

(add-hook 'help-mode-hook (lambda () (pop-to-buffer (get-buffer "*Help*"))))

(add-hook 'grep-mode-hook (lambda () (pop-to-buffer (get-buffer "*grep*"))))

作为替代方案,一般方法是使用special-display-regexpsspecial-display-buffer-names来生成此类缓冲区special-display,将它们放在一个单独的框架中(并选择它)。 E.g:

(setq special-display-regexps '("[ ]?[*][^*]+[*]"))