gpt4 book ai didi

elisp - 需要 compile-goto-error 变体来替换当前窗口中的编译缓冲区

转载 作者:行者123 更新时间:2023-12-01 12:46:05 25 4
gpt4 key购买 nike

我有一个执行多目录 grep 的个人 elisp 函数。它使用 compilation-start,它会创建一个包含结果的编译模式缓冲区,我可以在其中按 RET(绑定(bind)到 compile-goto-error) 跳转到相应位置。

但是,compile-goto-error 总是访问另一个窗口中的位置,从而留下编译缓冲区。一半时间我只是在搜索一个特定的位置,所以我想做的是绑定(bind)一些其他键(比如 C-RET)来访问缓冲区中的相应位置,但留在当前窗口,将编译缓冲区替换为该位置的缓冲区。

我已经追踪到从compile-goto-errornext-error-internalnext-error-functioncompilation-next-error-functioncompilation-find-file,但找不到一个很好的地方来 Hook 我的不同行为。是否有一种简单的方法(或者,如果失败了,是一种复杂的方法)来创建一个 compile-goto-error 变体,该变体切换到保存编译缓冲区的窗口中的新缓冲区?

最佳答案

我建议只建议 compile-goto-error 函数做正确的事情,而不是创建自定义函数和键绑定(bind)。以下内容对我来说是正确的(根据 Stefan 的建议):

(defadvice compile-goto-error (around my-compile-goto-error activate)
(let ((display-buffer-overriding-action '(display-buffer-reuse-window (inhibit-same-window . nil))))
ad-do-it))

关于elisp - 需要 compile-goto-error 变体来替换当前窗口中的编译缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com