2010-06-16 78 views
24

我已經開始在30英寸顯示器上編碼,並且想知道是否可以將小緩衝區移動到emacs屏幕的頂部?谷歌搜索沒有顯示任何東西。是否可以將emacs minibuffer移動到屏幕的頂部?

乾杯 Nimai Etheridge的

+4

有趣。我不確定我是否會使用它(迷你緩衝器已經在我的窗戶底部超過20年了...),但非常有趣的想法。 – dmckee 2010-06-16 00:35:46

回答

8

查看default-minibuffer-frameinitial-frame-alist變量的文檔。這聽起來像你可能能夠爲你的小型緩衝器(你可以放置在屏幕的頂部)有一個單獨的框架,然後生成利用它的小型無緩衝幀。

注意,在initial-frame-alist它指出,「如果值呼籲沒有小緩衝區的框架,而你還沒有在自己創建的小緩衝區幀,迷你緩衝區畫面是根據minibuffer-frame-alist創造」,這聽起來像什麼將需要。

有一些保存和恢復框架配置的方法,所以如果這樣工作,您可以在emacs啓動時自動重新創建佈局。

編輯:
以下使用此框架排列的基本示例/驗證概念。在使用它的幀被刪除之前,微型緩衝幀不能被刪除。當你做最大化編輯器框架等事情時,你會遇到麻煩,當然,因此嘗試使這個系統以更無縫的方式工作肯定會有一些工作要做。

(setq default-minibuffer-frame 
     (make-frame 
     '((name . "minibuffer") 
     (width . 80) 
     (height . 1) 
     (minibuffer . only) 
     (top . 0) 
     (left . 0) 
     ))) 
(setq new-frame 
     (make-frame 
     '((name . "editor") 
     (width . 80) 
     (height . 30) 
     (minibuffer . nil) 
     (top . 50) 
     (left . 0) 
     ))) 

當然,您也可以將此與scottfrazer將模式線移動到頂端的方法結合使用。

這可能可以在window-setup-hook

你還應該看看內置的frame.el和dframe.el庫。像dframe-reposition-frame這樣的函數可以提供一種方便的方式,將小緩衝區框架「附加」到活動編輯框的頂部。

變量minibuffer-auto-raise也可以配置爲每當激活小型緩衝器時提高小型緩衝器幀,這可以減輕在其餘時間使其可見的需要。

+0

歡呼的隊友,今晚我會研究它,讓我知道如果我找到有用的東西 – nimms 2010-08-10 01:49:15

7

我敢肯定你不能移動迷你緩衝區本身,而是你可以排序的-ISH-使模線在最前面:

(setq-default header-line-format mode-line-format) ; Copy mode-line 
(setq-default mode-line-format nil) ; Remove mode-line 

這將覆蓋諸如使用標題行的Info之類的東西,但它可能與在不破壞C源代碼的情況下獲得的近似。

相關問題