我正在尝试向magit添加一个钩子,以便在 Emacs 窗口内打开*magit-diff
* 缓冲区(使用主要模式)时,我的光标(从 magit-status 窗口)移动到该窗口。magit-diff-mode
我试图添加一个钩子,magit-diff-mode-hook
但根本无法让它工作。
我应该使用哪个钩子(如果有的话),我该怎么做才能使该窗口处于活动状态?
PS:如果有两个差异窗口(比如说因为另一个项目的另一个 magit-diff 将打开),我想去刚刚打开的那个。
magit-diff-mode-hook
不是很有帮助,因为它的功能在差异缓冲区刚刚构建并且仍然处于活动状态时运行。仅display-buffer
调用差异缓冲区。因此,焦点又回到了调用者身上。但是,差异缓冲区是窗口堆栈上的下一个缓冲区。因此,以下应该有效(请比我更彻底地测试它):
(defadvice magit-diff (after switch-to-diff activate)
(other-window 1))
Magit 实际上可以满足您的要求。当我使用d
或D
差异显示在另一个窗口中并且该窗口获得焦点时。我不确定它是否总是那样做,我可能会magit-diff-*
在某个时候改变行为,而不是在我触摸它之前所做的任何事情。
如果这与您的经验(使用开发版本)不符,请打开一个问题。