2009-05-17 82 views
2

我想弄清楚如何使用Emacs代碼瀏覽器(ECB),你可以用它做的事情之一是設置ecb-windows-width來決定ecb窗口有多寬。問題是這個序列:如何在emacs框架渲染後立即運行命令?

  1. 框架彈出在屏幕上。
  2. ecb-activate被調用,根據ecb-windows-width縮放。
  3. default-frame-alist參數踢入,幀被調整大小。

問題是由於這個順序,ecb窗口的寬度在幀被調整大小之前被設置,然後沒有被縮放。

所以我想運行的ECB重繪佈局(或理想只是ECB激活),但它發生後,#3。否則,某種ecb-dynamic-width-scale選項也會起作用。

對於它的價值,ECB-自動激活不工作,所以我不能查出是否會解決這個問題。

+0

聽起來像一個錯誤,你應該給ecb的維護者發郵件。 – justinhj 2009-05-18 16:50:03

回答

2

它看起來像我找到了解決方法。

  1. 將ecb-fix-window-size設置爲true。
  2. 當框架加載時,ecb-activate被調用,ecb窗口按比例縮放到框架大小。
  3. 然後默認幀-ALIST在踢和框架得到調整,但歐洲央行的窗口有一個固定的大小,並沒有得到縮小。

很危險,因爲您根據首先出現的默認幀大小設置寬度,而不是實際使用的大小。但是,好吧。

1

我不熟悉歐洲央行,但after-make-frame-functions可能會有助於運行你想要的功能(或運行一些鉤子功能,你想用ecb框架做特別的事情)。

after-make-frame-functions是一個參數一個參數(新創建的幀)並在幀創建後運行的功能列表。這不適用於初始emacs框架(啓動時),因爲您的.emacs在之後被讀取爲,該框架已被創建。

+0

是的,我試過這個鉤子,但它似乎沒有實際調用函數,沒有任何反應。 事實上,如果我只是這樣做: (添加鉤「化妝幀功能後」(拉姆達()(setq XX 1))) ,然後嘗試評估XX的emacs啓動後它變成變量尚未設置。 – numerodix 2009-05-17 23:20:05

+0

鉤子函數必須採用單個框架參數。所以,我這樣做,並調用後(使幀),變量XX不會獲取設置爲1。我還沒有嘗試過主Emacs框架(即發動的emacs後): (添加 - hook'after-make-frame-functions(lambda(the-frame)(setq xx 1))) – 2009-05-17 23:40:08

相關問題