2012-03-06 35 views
4

(I使用詞語的Emacs手冊使用它們以同樣的方式的「窗口」和「幀」。)確保,與分割窗口工作時,當前活動Emacs窗口總是寬至少80個字符

我喜歡在工作時垂直分割我的Emacs幀,因爲我喜歡並排看到兩個緩衝區。由於我有一個小屏幕,我更喜歡比平常更大的字體大小,所以這兩個窗口都不足以顯示每行80個字符。當我在窗口之間切換時,我發現自己不得不擺弄它們的大小以防止我的代碼被打包。

有沒有辦法讓Emacs自動讓當前活動的窗口至少有80個字符?我想要的是,每當我切換到一個窗口時,Emacs都應該調整它的大小,以便我可以舒適地在單行上看到我的代碼。

E.g,讓我們說這是原來的分裂:

 ____________________ 
    |   |   | 
    |   |   | 
    |   |   | 
    |   |   | 
    |   |   | 
    |   |   | 
    |   |   | 
    -------------------- 

現在我將我的插入點移動到左邊窗口。

 ____________________ 
    |    |  | 
    |    |  | 
    |    |  | 
    |insertion |  | 
    |point  |  | 
    |    |  | 
    |    |  | 
    -------------------- 

我做編輯在左側窗口中的緩衝區:使得建立像這樣的Emacs應該調整窗口的大小。現在我將插入點移動到右側窗口。 Emacs的應該調整窗口的大小,所以它看起來是這樣的:

 ____________________ 
    |  |   | 
    |  |   | 
    |  |   | 
    |  |insertion | 
    |  |point  | 
    |  |   | 
    |  |   | 
    -------------------- 

我敢肯定,我已經看到了一些elisp的是正是這樣做的,但我不能找出正確的咒語,我應該投入到谷歌搜索框。

回答

7

假設你正在使用other-window(默認綁定到CX O)在窗口之間進行切換,你可以簡單地指點這樣說:

(defadvice other-window (after other-window-now activate) 
    (when (< (window-width) 80) 
    (enlarge-window (- 80 (window-width)) t))) 

這將自動(80放大窗口 - 它是當前寬度列),使其80列寬。

+0

這太棒了。我從來不知道defadvice。這是真的,他們說:你永遠不會知道* Emacs。 – 2012-03-06 17:27:55

相關問題