2013-05-20 60 views
2

如何爲display-buffer-alist某些框架強制執行類似display-buffer-reuse-frames的行爲?在另一個框架中重新使用*編譯*窗口

我曾嘗試做

(setq display-buffer-alist 
     '(("\\*compilation\\*" . 
     (display-buffer-reuse-window '((inhibit-same-window . t)))) 
     )) 

,但無濟於事。即使通過Emacs標準,文檔也很長且很隱祕,沒有任何例子。

這與question 3311577不一樣,因爲(setq-default display-buffer-reuse-frames t)已棄用。

回答

3

聽起來好像你想在你的ALIST參數中使用reusable-frames條目到display-buffer-reuse-window而不是inhabit-same-window? (或者你想要兩個?)

你也希望使用add-to-list而不是用setq破壞整個列表。

編輯︰我原來的答案搞砸了列表結構,因爲我使用文檔中的虛線對符號,但省略了一個點!

所以,正確的值是:

(add-to-list 
'display-buffer-alist 
'("\\*compilation\\*" . (display-buffer-reuse-window 
          . ((reusable-frames . t))))) 

或等價:

(add-to-list 
'display-buffer-alist 
'("\\*compilation\\*" display-buffer-reuse-window 
         (reusable-frames . t))) 

我也注意到,有一個很好的customize接口配置此。

+0

謝謝,但不幸的是,它不起作用 - 無論是否已經有一個帶有* compilation *'的框架(X窗口),它都會將我當前按F9的幀切換到* compilation * ,所以我最終有兩臺顯示器顯示GCC輸出。 –

+0

我也曾嘗試將'inhibit-same-window'設置爲't',但它也沒有幫助。 –

+0

你已經將'F9'綁定到'compile'? – phils

相關問題