我有一个执行多目录 grep 的个人 elisp 函数。它使用compilation-start
,它创建一个带有结果的编译模式缓冲区,我可以在其中按下RET
(绑定到compile-goto-error
)跳转到相应的位置。
但是,compile-goto-error
总是在另一个窗口中访问该位置,从而使编译缓冲区保持打开状态。有一半的时间我只是在搜索一个特定的位置,所以我想做的是绑定一些其他键(比如C-RET
)来访问缓冲区中的相应位置,但留在当前窗口中,将编译缓冲区替换为位置的缓冲区。
我已经跟踪了从compile-goto-error
to next-error-internal
to next-error-function
to compilation-next-error-function
to的相关执行compilation-find-file
,但找不到一个很好的地方来挂钩我的不同行为。是否有一种简单的方法(或者,如果失败,一种复杂的方法)来创建一个compile-goto-error
变体,该变体在保存编译缓冲区的窗口中就地切换到新缓冲区?