2009-12-06 50 views
0

當我啓動Emacs時,其窗口和它的小型緩衝區在主框架上開始浮動,留下大量空白空間(請參閱:herehere)。對發生了什麼以及如何解決它有任何想法?Windows和Minibuffer漂浮在框架上

我在Xmonad上使用emacs版本23.1.1

謝謝!

+0

你在運行終端嗎? (即emacs -nw) – 2009-12-09 22:19:42

+1

不行,只是使用了不好的顏色主題;) – konr 2009-12-10 01:25:03

+0

如果你以--no-init開頭,會發生這種情況嗎? – 2009-12-10 02:17:52

回答

1

在shell模式下執行TAB展開時,偶爾會得到相同的結果。我並沒有最終得到一個空的迷你buf,它通常將shell中的所有內容展開。目前我找到的唯一解決方案是殺死當前的外殼緩衝區

1

您可以嘗試C-l(recenter-top-bottom)。多年來,我一直使用它作爲一種非常可靠的「重繪」操作,可以清除框架上發生的各種碎屑。當你沒有窗口系統時,它更有用。

+0

感謝您的回答,但命令不會改變一件事情。 – konr 2009-12-09 17:15:38

+0

嗯。給你一個很好的答案的一部分困難是你的場景很難重現。我不知道您是否可以添加任何可以幫助我們重新創建環境的洞察力,但這會有所幫助。我能夠做的就是鍵入「Cx(message ...」,其中......是一系列引起小緩衝區擴展的引用換行符,而仍在小緩衝區中時,我鍵入「Cx o」以返回主窗口,確定「Cl」對我沒有任何幫助,然後我鍵入「Cx o」返回到小緩衝區,然後鍵入「Cg」恢復屏幕,您可以嘗試一下。 – pajato0 2009-12-09 20:59:08

0

這部分的工作原理(從here截取):

 
(defun fullscreen() 
    (interactive) 
    (set-frame-parameter nil 'fullscreen 
         (if (frame-parameter nil 'fullscreen) nil 'fullboth))) 

(add-hook 'emacs-startup-hook 'fullscreen) 

窗戶get corrected,雖然小緩衝區仍然較大。

1

它看起來像Emacs和你的窗口管理器之間的奇怪的互動。就好像Emacs正在配置自己在其活動窗口中有一定數量的行和列,但窗口管理器分配的幀更大。

你可以試着在沒有Xmonad的情況下運行X(即運行startX)然後運行Emacs?你不會得到幀裝飾,但你仍然可以使用xterm來啓動它,並看看它被分配了什麼「自然」的大小。使用相同的Emacs配置,這將縮小Xmonad的某個問題。

從屏幕截圖中看不出來,因爲其中一個絕對是在GUI模式下,但另一個(綠色在黑色)看起來像是在文本模式下。如果您強制它以文本模式運行(emacs -nw),它是否佔用相同的大小?在shell中,正常的命令佔用了分配窗口的整個大小嗎?

shell變量COLUMNSLINES設置是否正確?它們與窗口尺寸相匹配嗎?假設您正在運行bash,是否打開了shopt checkwinsize?像ls這樣的常規命令是否按預期的邊距換行並滾動以使用整個窗口?

確保在GUI模式正常工作之前正確配置文本模式是值得的。我有一種預感Xmonad管理窗口大小的方式可能是罪魁禍首,如果它是「迫使」窗口在某些安排中平鋪,並且沒有正確發送X提示。但是 - 這一切都只是假設現在...

0

聽起來像一個錯誤,對我來說。考慮報告它:。嘗試提供從emacs -Q開始的配方。