2010-11-20 34 views
4

現在のウィンドウ以外のウィンドウに出力を書き込むemacs lisp関数を書いてみたいと思います。現在のものだけが存在すれば新しいウィンドウが作成され、そうでなければ既存のウィンドウが使われるはずです。これは、C-h-f(Describe Function)を実行したときの動作と似ています。説明が別のウィンドウにポップアップします。これを行う最善の方法は何ですか?Emacs Lisp - 新しいウィンドウを開く

答えて

9

display-buffer参照してください:

表示バッファは、 `window.el」内のインタラクティブ コンパイルLisp関数です。

これはC-x 4 C-oに結合している。

は(ディスプレイバッファbuffer-or-name &オプションではなく、このウィンドウ枠)

バッファbuffer-or-nameを作る いくつかのウィンドウに表示されますが、それを選択しないでください。 buffer-or-nameは、バッファまたは既存のバッファの名前である でなければなりません。 バッファー名を表示するように選択されたウィンドウ、または ウィンドウが見つからない場合はnilを返します。

オプションの引数ではありません - このウィンドウ 非nilのは、それがすでに 選択ウィンドウに表示されている場合でも、選択1、 以外 ウィンドウにバッファが表示さを意味します。

オプションの引数フレームには、 指定されたバッファがすでに表示されているときに調査するフレームが指定されています( )。 バッファがすでに に表示されている場合、これらのフレームのいずれかにあるウィンドウ は、単にそのウィンドウを返します。フレームの の値は次のとおりです。

`visible ' - すべてのウィンドウが表示されます。 可視フレーム。

0 - 表示されているすべてのウィンドウまたは アイコン化されたフレームを考慮してください。

t - すべてのフレームのウィンドウを考慮します。

特定のフレーム - そのフレームのみの のウィンドウを考慮してください。

nil - 選択した フレーム(実際には最後の 非ミニバッファフレーム)のウィンドウのみを考慮してください。しかし 、どちらか display-buffer-reuse-frames' or ポップアップフレームは(テキストのみ 端末にnil以外 なくグラフィックのみ)非nilで、場合、すべての可視または アイコン化フレームを考えます。 standard-outputが一時バッファに送信されるように結合し

それとも、そのバッファを選択したい場合、あなたは(あなたがいないように聞こえるもの)​​を使用することができ、またはwith-output-to-temp-buffer - 詳細はdocumentationを読みます(帽子の先端はMichaelです)。

+2

ありがとうございました。私はまた、出力バッファに出力バッファがあることも発見しました。別のバッファを追跡するのではなく、一時バッファに直接入力することができます。 –

+0

@Michaelはドキュメントのリンクを追加しました。 –

関連する問題