Emacs 从magic状态自动切换到magit diff窗口

Emacs 从magic状态自动切换到magit diff窗口,emacs,buffer,elisp,diff,magit,Emacs,Buffer,Elisp,Diff,Magit,我正在尝试向magit添加一个钩子,以便在Emacs窗口内打开*magit diff*缓冲区(使用magit diff模式主模式)时,我的光标(从magit状态窗口)移动到该窗口 我试图在magit diff mode hook中添加一个钩子,但根本无法实现 我应该使用哪个钩子(如果有的话),我可以做些什么来激活该窗口 注:如果有两个diff窗口(比如说,因为另一个项目的另一个magit diff将被打开),我想转到刚刚打开的窗口。magit diff mode hook不是很有帮助,因为它的函

我正在尝试向magit添加一个钩子,以便在Emacs窗口内打开
*magit diff
*缓冲区(使用
magit diff模式
主模式)时,我的光标(从magit状态窗口)移动到该窗口

我试图在magit diff mode hook中添加一个钩子,但根本无法实现

我应该使用哪个钩子(如果有的话),我可以做些什么来激活该窗口


注:如果有两个diff窗口(比如说,因为另一个项目的另一个magit diff将被打开),我想转到刚刚打开的窗口。

magit diff mode hook
不是很有帮助,因为它的函数是在diff缓冲区刚刚构建并且仍然处于活动状态时运行的。仅为差异缓冲区调用
显示缓冲区
。因此,焦点又回到了调用者身上。但是,diff缓冲区是窗口堆栈上的下一个缓冲区。因此,以下方法应该有效(请比我更彻底地测试它):


马吉特确实做到了你所要求的。当我使用
d
d
时,差异显示在另一个窗口中,该窗口获得焦点。我不确定它是否总是这样做,但我可能已经改变了
magit diff-*
,在某个时候改变了它的行为,而不是在我触摸它之前它所做的任何事情


如果这不符合您的经验(与开发版本),请打开一个问题。

我将测试它。。。顺便说一句,谢谢你最近所有关于Emacs的帖子!也就是说,我意识到magit比我想象的还要好:magit中已经有很多快捷方式可以节省时间,所以我不确定我会不会“弄糟”它。我可以试着学习正确使用魔法的方法:)
(defadvice magit-diff (after switch-to-diff activate)
  (other-window 1))