在编译、发生搜索、grep 搜索等,Emacs 会在一个单独的窗口中创建一个新的缓冲区来显示结果,有没有自动跳转到那个窗口?它很有用,因为这样我就可以使用n
andp
而不是M-g n
andM-g p
来移动到下一个和上一个项目;另外,缓冲区可以快速退出q
。目前,每次运行这些命令时,我都会手动切换到新缓冲区,这很烦人。谢谢。
问问题
372 次
2 回答
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))
于 2012-12-03T06:29:37.643 回答
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*
于 2012-12-03T20:18:24.117 回答