emacs - 修改缓冲区焦点控制(pop-to-buffer vs display-buffer)

标签 emacs elisp

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

最佳答案

(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 ,这会将它们放在一个单独的框架中(并选择它)。例如。:
(setq special-display-regexps '("[ ]?[*][^*]+[*]"))

关于emacs - 修改缓冲区焦点控制(pop-to-buffer vs display-buffer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638201/

相关文章:

emacs - 向(互动)添加完成

emacs - Multiterm背景颜色错误

emacs - 在较大的换行行中突出显示一行

emacs - 为什么我不应该使用push-mark

基于 cc 模式的 Mathematica 的 Emacs 主模式

c++ - 如何将 Emacs 24 配置为 K&R(或 Stroutrup)风格?

emacs - 矩形选择的填充区域?

emacs - 设置键无操作的最佳方法

javascript - Emacs 运行 javascript?

emacs - 为什么 font-lock-keyword-face 在 Emacs 中突出显示双引号内的文本?