如何在Emacs中自动跳转到新创建的缓冲区/窗口

时间:2012-12-03 02:41:26

标签: emacs

在编译中,发生搜索,grep搜索等,Emacs会在单独的窗口中创建一个新的缓冲区来显示结果,反正是否有自动跳转到该窗口?这很有用,因为我可以使用np代替M-g nM-g p来移动到下一个和上一个项目;另外,缓冲区可以使用q快速退出。目前我每次运行这些命令时都会手动切换到新的缓冲区,这很烦人。感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用建议。

例如,要跳转到grep缓冲区,请使用以下建议:

(defadvice compilation-start (after compilation-start-maximize activate)
  (when (equal mode 'grep-mode)
    (switch-to-buffer "*grep*")
    ;; you may want to maximize the buffer
    (delete-other-windows)))

如果发生,您可以使用以下建议

(defadvice occur-1 (after occur-maximize activate)
  (other-window 1))

答案 1 :(得分:1)

经过一番搜索后,我想出了这个解决方案而没有建议内置函数:

(add-hook 'occur-hook (lambda () (pop-to-buffer occur-buf)))
(add-hook 'grep-mode-hook (lambda () (pop-to-buffer (get-buffer "*grep*"))))
(setq help-window-select t)
(add-hook 'compilation-mode-hook (lambda () (pop-to-buffer (get-buffer "*compilation*"))))

适用于*Occur**grep**compilation**Help*