ウィンドウを分割しないようにEmacsを設定する方法は?


7

分割ウィンドウが要求された場合にのみ発生する新しいワークフローを試したいです。それ以外の場合、Emacsはウィンドウを変更するだけです。私はこのコマンドを私の中に入れてみましたinit.el

(setq pop-up-windows nil)

そして、それはほとんど機能しているようです:ヘルプコマンドを使用した場合、コンパイルを起動したり、を使用M-x occurしたりします。Emacsはウィンドウを正しく変更します。ただし、*compilation*バッファー内RETで、行を押すと、Emacsはフレームを2つのウィンドウに分割します。Emacsが適切に切り替わることを確認するために必要な他の構成を誰かが知っていますか?


window.elを含むがこれに限定されない、内のいくつかの関数を再定義する必要がありdisplay-bufferます。ただし、それを行うと、ほとんどのライブラリ作成者は、表示するウィンドウと専用のウィンドウに関して多くの計画をたどり、以前のウィンドウ構成を復元するため、将来の問題の世界に陥ります。私の意見では、個人的な好みに基づいて特に変更が必要なものだけに触れた方がよいでしょう。つまり、マチェーテ(またはトールのウォーハンマー)ではなく、メスやレーザーナイフを使用します。
法律家、2014

これは直接的な回答ではなく、アドバイスになる可能性があります。ウィンドウを分割することを禁止することは良い考えではないかもしれません-時にはそれは非常に便利です。ウィンドウをすばやく切り替えて閉じると、ワークフローがスムーズになります。[ace-window] [1]と[ace-jump-mode] [2]を試して、Cx 0に慣れ、;現在のウィンドウを閉じるCx 1;他のウィンドウを閉じる[1 ]:github.com/abo-abo/ace-window [2]:github.com/winterTTr/ace-jump-mode これらはあなたを失望させません。
Nick

回答:


3

あなたが探している振る舞いは明確ではありません。

Emacsに(1)選択したウィンドウの現在のバッファーを置き換えるか、(2)同じフレームの新しいウィンドウではなく新しいフレームに新しいバッファーを表示させる場合は、non-の使用を検討してくださいnil pop-up-frames

その場合、Emacsの開発はフレームではなくウィンドウにかなり偏っているので、いくつかの追加の変更を加える可能性があります(たとえば、一部の開発はフレームの使用を適切にサポートしていないため、一部の開発はウィンドウの代わりにフレームを使用して十分にテストされていません。 )。

1対1のEmacsに関するEmacs Wikiページには、Emacsウィンドウよりもフレームの使用を好むこのアプローチに関する情報とコードが記載されています。優先とは、いつでも好きなときにいつでも明示的にフレームを分割できることを意味しますが、デフォルトではEmacsは分割しません。

そして、ライブラリoneonone.elはこのアプローチに役立つかもしれません。

また、ウィンドウを専用にすることもできます。これは、Emacsがその中に別のバッファーを表示しないことを意味します。

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