Emacs挂钩新框架

Mal*_*rba 9 emacs window

每当在Emacs中创建一个新帧时,我都需要一个命令来运行.到目前为止,我一直在使用after-make-frame-functions,但这个钩子只在被创建的帧上调用make-frame.我实际上需要在emacsclient -c命令创建新窗口时运行的东西.

有没有办法实现这一目标?

Gar*_*ees 9

我在理解你的问题时遇到了一些困难.Emacs服务器make-frame在需要创建新帧时调用,因此也after-make-frame-functions应该在这种情况下工作.那么你的实际问题是什么?

即使Emacs服务器没有创建新框架,您是否希望您的功能运行?如果是这样,请尝试添加您的功能server-switch-hook以及after-make-frame-functions.

server-switch-hook是一个定义的变量server.el.

文档:切换到Emacs服务器的缓冲区时运行Hook.

  • 是的,你的第一段是正确的.当我做`make-frame`时,我想要运行的命令工作得很好,但是当用`emacsclient -c`创建一个新框架时,它只是不起作用.所以我只是假设当我运行`emacsclient -c`时服务器没有调用该钩子.我现在做了更多的测试,结果证明我的命令有问题.抱歉这个毫无意义的问题. (3认同)
  • 没问题.[橡皮鸭调试](http://en.wikipedia.org/wiki/Rubber_duck_debugging)正在行动中! (3认同)
  • 惊人!我向您介绍了通过代理进行元橡皮鸭调试的概念,其中有人 - 例如我自己 - 在SO上找到了具有完全相同问题的人,并发现问题实际上并不存在.我感激你们俩. (2认同)