如何自动切换到Emacs中的缓冲区?

时间:2014-01-03 12:29:03

标签: emacs elisp

在正则表达式上运行occur时,帧会分成两个窗口,occur缓冲区如下所示。但是,键盘焦点仍在原始缓冲区中。如何以编程方式更改此行为,以使occur缓冲区成为当前缓冲区?我试过这个:

(defun test-occur ()
  (interactive)
  (occur "test")
  (switch-to-buffer "*Occur*"))

但它不起作用..(即:现在occur缓冲区显示在顶部和底部窗口中)

2 个答案:

答案 0 :(得分:3)

您不必为此定义单独的功能。 只需添加一个钩子:

(add-hook 'occur-hook (lambda () (other-window 1)))

Alternatively,可能更可靠:

(add-hook 'occur-hook (lambda () (switch-to-buffer-other-window "*Occur*")))

答案 1 :(得分:1)

试试这个:

(defun test-occur ()
  (interactive)
  (occur "test")
  (other-window 1))