在Win32下,每个emacs框架在Alt-tabbing时显示为不同的窗口,这是有道理的。但是,当我选择主编辑窗口时,我也喜欢我的速度条框架随之自动抬起。
编写一个函数来提升所有帧(或者甚至是所有当前不可见的帧)都是相对微不足道的,但我无法弄清楚要使用的钩子,或者确实甚至可以使用一个钩子。
所以,如果我点击或alt-tab到我的任何emacs帧,应该运行一个钩子来调用我的函数来提升所有帧。有什么帮助吗?
答案 0 :(得分:1)
GNU emacs似乎没有任何此类功能。
Xemacs有select-frame-hook和map-frame-hook。还有变量auto-raise-frame,但不是在GNU emacs中。
如果您想要改进emacs,请参阅http://www.xemacs.org/Documentation/beta/html/lispref_40.html#SEC526了解一些想法。
答案 1 :(得分:1)
我在GNU Emacs中最接近的是switch-frame
事件,但它仅在聚焦不同的Emacs帧时生成,而不是在切换到非Emacs窗口然后返回到同一帧时生成。
这是一个足够好的窗口管理器应该做的事情,与Emacs的一些合作(例如使用窗口标题来确定速度条框架是什么)。
在Windows下,您应该可以使用AutoHotKey的WinWaitActive命令。
答案 2 :(得分:0)
我找到了一个可以使用的钩子。
server-visit-hook is a variable defined in `server.el'.
Original value was nil
Documentation:
Hook run when visiting a file for the Emacs server.
You can customize this variable.
当您找到包含Emacs服务器或emacsclient的文件时, 这个钩子会被调用。你可以使用这个钩子做一些需要的东西。