【发布时间】:2012-04-23 15:44:52
【问题描述】:
每当在 Emacs 中创建新框架时,我都需要一个命令来运行。到目前为止,我一直在使用after-make-frame-functions,但是这个钩子只在make-frame 创建的帧上被调用。 我实际上需要在emacsclient -c 命令创建新窗口时运行的东西。
有没有办法做到这一点?
【问题讨论】:
每当在 Emacs 中创建新框架时,我都需要一个命令来运行。到目前为止,我一直在使用after-make-frame-functions,但是这个钩子只在make-frame 创建的帧上被调用。 我实际上需要在emacsclient -c 命令创建新窗口时运行的东西。
有没有办法做到这一点?
【问题讨论】:
我在理解您的问题时遇到了一些困难。 Emacs 服务器在需要创建新框架时调用make-frame,因此after-make-frame-functions 在这种情况下也应该可以工作。那么你的实际问题是什么?
您是否希望即使 Emacs 服务器不创建新框架也能运行您的函数?如果是这样,请尝试将您的函数添加到 server-switch-hook 和 after-make-frame-functions。
server-switch-hook是server.el中定义的变量。文档:切换到 Emacs 缓冲区时的挂钩运行 服务器。
【讨论】:
make-frame 时,我想运行的命令完美运行,但是当使用emacsclient -c 创建新框架时它就无法正常运行。所以我只是假设当我运行emacsclient -c 时服务器没有调用钩子。我现在做了更多的测试,结果发现我的命令有问题。对不起,这个毫无意义的问题。