特定のバッファを新しいウィンドウで強制的に開くにはどうすればよいですか?


12

Magitで変更をコミットする場合、コミットに関する詳細を追加するときにdiffビューを開いておくと便利です。

Magitでは、*magit ..*バッファーに差分が表示されます。あなたがヒットするとcc、カーソルが上にある間に段階的なファイル、Magitはバッファをコミット.. COMMIT_EDITMSGポップアップ表示されます。デフォルトでは、この新しいバッファは*magit ..*コミット差分を表示していたバッファを置き換えます。

QUESTION - どのように私は作るのですか.. COMMIT_EDITMSG、私は両方見ることができるように(別のウィンドウ再利用したり、フレームがそもそもちょうど1つのウィンドウを持っていた場合は、新しいウィンドウを作成します)新しいウィンドウで開いているバッファ*magit ..*.. COMMIT_EDITMSGバッファを?


回答:


17

を使用して(同じフレーム/ウィンドウまたは異なるフレーム/ウィンドウで)バッファーを開く方法を構成できますdisplay-buffer-alist。この変数の詳細については、以下のリファレンスを参照してください。

解決

emacs COMMIT_EDITMSGに、ウィンドウで終わるが常に同じ(*magit ..*)ウィンドウではないバッファを常に開くように指示する必要があります。

次のスニペットをinit.elafter (require 'magit)に追加して、このアクションを指定します。

(add-to-list 'display-buffer-alist
                 '(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
                                        ((inhibit-same-window . t)))))

ソリューションの内訳

display-buffer-alistは、a がtrueの場合にパラメーターで(または関数のリスト)をalist呼び出すものです。表すことができ、FUNCTIONALISTCONDITIONdisplay-buffer-alist

'(CONDITION . (FUNCTION . ALIST))
  • ここではCONDITION、バッファ名がで終わるということであるCOMMIT_EDITMSGと表されています".*COMMIT_EDITMSG"
  • FUNCTION呼び出しがありdisplay-buffer-pop-up-window、我々は、このバッファ用ウィンドウを作成したいと。関数を単独で指定する代わりに、単一の関数のリストとして(display-buffer-pop-up-window)挿入されるため、将来必要に応じてより多くの関数を簡単にリストに追加できます。
  • ALIST含まれている(inhibit-same-window . t)私たちは、このバッファは同じウィンドウで開くようにしたくないと。

参照資料


2

v2.1.0デフォルトでMagit から開始すると、コミットメッセージの書き込みに使用されたバッファとともにコミットされている変更が表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.