2012-05-09 40 views
5

如何以編程方式在窗口other than the current中顯示緩衝區,類似於Emacs的grep next-error的行爲。我希望這可以在最新的Emacs 24.1中運行。請注意,這個邏輯最近在Emacs trunk中被修改,並被合併到一個函數display-buffer中,帶有相當複雜的調用語義。我發現很難弄清楚如何在使用display-buffer多次閱讀幫助之後。爲什麼沒有這種包裝功能,例如display-buffer-other-window在最近Emacs的其他窗口中顯示緩衝區

回答

2

Emacs的人士給我的回答

(pop-to-buffer BUFFER 'other-window) 
4

漫長的文檔字符串display-buffer包括以下內容:

動作參數`顯示緩衝區」也可以具有非零 和非列表值。這意味着在所選窗口以外的窗口 中顯示緩衝區,即使它已經顯示在所選窗口的 中。如果以前綴 參數交互調用,則ACTION爲t。

因此顯示在非當前窗口指定的緩衝區,你可以使用:

(display-buffer BUFFER-OR-NAME t) 
+0

這與行爲不同('pop-to-buffer BUFFER'other-window)'有什麼不同? –

+1

'display-buffer'不選擇窗口。 'pop-to-buffer'調用display-buffer,然後選擇窗口。請注意,「other-window」ACTION與使用「t」(即「非零和非列表值」)相同,並且不會導致使用「其他窗口」函數來確定窗口,它可能看起來;它只會導致設置「禁止同一窗口」。 – phils

2

和包裝存在的,順便說一句,這就是所謂的switch-to-buffer-other-window

相關問題