2010-11-20 234 views
4

我想編寫一個emacs lisp函數,它將輸出寫入到當前窗口以外的窗口。如果只有當前的窗口,它應該創建一個新窗口,否則應該使用現有窗口。這與運行C-h-f(描述函數)時發生的情況類似,並且該描述在另一個窗口中彈出。做這個的最好方式是什麼?Emacs Lisp - 打開新窗口

回答

9

參見display-buffer

顯示緩衝器是在`window.el」交互式 編譯Lisp函數。

它被綁定到C-x 4 C-o。

(顯示緩衝緩衝或名稱 &可選不-此的窗口框架)

阻止緩衝區緩衝區或名稱出現在 一些窗口,但不要選擇它。 緩衝區或名稱必須是現有緩衝區的緩衝區名稱或 名稱。如果沒有找到這樣的 窗口,則返回 選擇顯示 緩衝區或名稱的窗口或無。

可選參數未此窗口 非零裝置顯示比所選擇的一個以外的 窗口緩衝區中, 即使它已經顯示在 選擇的窗口。

可選參數框架指定 指定緩衝區已被顯示的時候調查哪些框架。 如果緩衝區已經在 中顯示,則其中一個窗口 上的某個窗口只會返回該窗口。可能的 幀的值爲:

`visible' - 考慮所有可見幀上的窗口。

0 - 考慮全部可見窗口或 圖標化框架。

t - 考慮所有幀上的窗口。

一個特定的框架 - 考慮僅在框架上的窗口 。

無 - 考慮在選定的 幀(實際上最後的 非小型緩衝器幀)上的窗口。但是,如果 或者是 display-buffer-reuse-frames' or 彈出幀'非零(非零 而不是純文本 終端上的圖形),請考慮所有可見幀或 帶圖標的幀。

或者你可以使用​​,如果你想選擇該緩衝區(這聽起來像你沒有),或with-output-to-temp-buffer結合被髮送到臨時緩衝區的standard-output - 讀documentation瞭解更多詳情(爲此,請致電Michael)。

+2

謝謝。我還發現帶有輸出到臨時緩衝區。它允許直接輸入到臨時緩衝區,而不是跟蹤單獨的緩衝區。 – 2010-11-20 03:16:15

+0

@Michael添加了文檔鏈接。 – 2010-11-20 03:52:26