如何在呈现emacs帧之后运行命令?

时间:2009-05-17 22:38:00

标签: emacs elisp emacs-ecb

我正在试图弄清楚如何使用Emacs代码浏览器(ECB),并且可以使用它做的事情之一是设置ecb-windows-width来决定ecb窗口的宽度。问题是这个序列:

  1. 框架弹出屏幕。
  2. ecb-activate被调用,根据ecb-windows-width进行缩放。
  3. default-frame-alist参数启动,框架调整大小。
  4. 问题在于,由于这个顺序,ecb窗口的宽度是在帧调整大小之前设置的,然后不会缩放。

    所以我想运行ecb-redraw-layout(或者理想情况下只是ecb-activate),但它必须在#3之后发生。否则,某种ecb-dynamic-width-scale选项也可以。

    对于它的价值,ecb-auto-activate不起作用,所以我不知道是否能解决它。

2 个答案:

答案 0 :(得分:2)

看起来我找到了解决方法。

  1. 将ecb-fix-window-size设置为true。
  2. 当帧加载时,调用ecb-activate并且ecb窗口按帧大小成比例缩放。
  3. 然后default-frame-alist启动并且框架得到调整大小,但ecb窗口具有固定的大小并且不会缩放。
  4. 非常hackish,因为您根据首先出现的默认帧大小设置宽度,而不是实际使用的大小。但是哦,好吧。

答案 1 :(得分:1)

我不熟悉ECB,但是after-make-frame-functions可能有助于运行你想要的功能(或运行一些钩子功能,你想用ecb框架做特殊的事情)。

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