如何在渲染emacs帧之后运行命令?

如何在渲染emacs帧之后运行命令?,emacs,elisp,emacs-ecb,Emacs,Elisp,Emacs Ecb,我试图弄清楚如何使用Emacs代码浏览器(ECB),使用它可以做的一件事是设置ECB窗口宽度,以确定ECB窗口的宽度。问题在于这一顺序: 画面在屏幕上弹出 ecb激活将被调用,并根据ecb窗口宽度进行缩放 默认帧列表参数生效,帧大小调整 问题在于,由于此顺序,ecb窗口的宽度在调整帧大小之前设置,然后不进行缩放 所以我想运行ecb重画布局(或者理想情况下只是ecb激活),但它必须在#3之后进行。否则,某种ecb动态宽度比例选项也会起作用 值得一提的是,ecb自动激活不起作用,因此我无法确定这是否

我试图弄清楚如何使用Emacs代码浏览器(ECB),使用它可以做的一件事是设置ECB窗口宽度,以确定ECB窗口的宽度。问题在于这一顺序:

  • 画面在屏幕上弹出
  • ecb激活将被调用,并根据ecb窗口宽度进行缩放
  • 默认帧列表参数生效,帧大小调整
  • 问题在于,由于此顺序,ecb窗口的宽度在调整帧大小之前设置,然后不进行缩放

    所以我想运行ecb重画布局(或者理想情况下只是ecb激活),但它必须在#3之后进行。否则,某种ecb动态宽度比例选项也会起作用


    值得一提的是,ecb自动激活不起作用,因此我无法确定这是否能解决问题。

    我不熟悉ecb,但是在生成框架函数之后,
    可能有助于运行您想要的函数(或者运行一些钩子函数,您想对ecb框架做一些特殊的事情)


    after make frame functions
    是一个函数列表,这些函数使用一个参数(新创建的帧),并在创建帧后运行。这不适用于初始emacs帧(在启动时),因为您的.emacs是在已创建帧之后读取的。

    看起来我找到了解决方法

  • 将ecb fix窗口大小设置为true
  • 加载帧时,将调用ecb ACTIVE,ecb窗口将按帧大小成比例缩放
  • 然后,默认的框架列表将生效,框架将调整大小,但ecb窗口的大小是固定的,不会进行缩放

  • 这是一种非常粗俗的做法,因为您是根据首先出现的默认帧大小来设置宽度的,而不是您实际使用的大小。但是哦,好吧。

    是的,我试过那个钩子,但它似乎没有真正调用函数,什么也没发生。事实上,如果我只是这样做:(在make frame functions(lambda()(setq xx 1))之后添加hook’,然后在emacs启动后尝试计算xx,结果发现变量尚未设置。hook函数必须采用单个frame参数。因此,在我执行以下操作并调用(make frame)之后,变量xx被设置为1。我还没有在主emacs框架上尝试过(也就是说,在启动emacs之后):(在生成框架函数(lambda(框架)(setq xx 1))之后添加hook)听起来像个bug,你应该给ecb的维护人员发电子邮件。