3

私は最近ラインを追加しました

(set-default-font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1")

私の .emacs ファイルに。その後、find-file-other-window既存のウィンドウを利用する代わりに、常に新しいウィンドウを開きます。どうしてこうなる!? どうすれば修正できますか?

この font-config マジックがどのように機能するのか理解できません。

編集:私はかなり大きな解像度を持っており、フォントサイズはかなり小さくなっています. find-file-other-window使用可能な文字スペースを考慮しますか? おそらく、窓を無造作に開けるだけの余地がたくさんあると判断しているのでしょう。

4

1 に答える 1

5

find-file-other-window最終的にはを呼び出しますdisplay-buffer。これは、複雑なアルゴリズムを実行して、既存のウィンドウを再利用するか、作成するか、およびその方法を決定します。特に、display-bufferウィンドウを作成またはリサイクルする必要があると判断した場合はsplit-window-preferred-function、最大のウィンドウを分割するために呼び出しを試みます。デフォルトでsplit-window-preferred-functionは、はです。これは、ウィンドウの高さが行split-window-sensiblyを超える場合はウィンドウを垂直方向に分割し、列の幅を超える場合はウィンドウを水平方向に分割しません。split-height-thresholdsplit-width-threshold

あなたが望むように見えます

(setq split-width-threshold nil)
(setq split-height-threshold nil)

注意:この回答はGNUEmacs23に適用されます。以前のバージョンには水平分割がありませんでした。それ以降のバージョンでは、動作が異なる場合があります。


これを見つけるためのいくつかの方法(簡単ではありません):

  • 何が起こっているのかがウィンドウの分割と呼ばれていると推測するとM-x apropos RET split RET、いくつかの変数と関数が表示され、どれが関連しているかがわかる場合があります。または、オプションがあると推測した場合(多くの場合あります)、C-h v split- TAB有望なリードを示します。
  • バッファの表示を参照するためのドキュメントfind-file-other-window。(このレベルの詳細については、Elispマニュアルにアクセスする必要があります。Emacs内でElispマニュアルが表示され、この関数のドキュメントが表示されます。)そこを読むための文章がわかりにくいです。求められている情報を含むウィンドウの選択を参照します。C-h i m elisp RETi find-file-other-window RETpop-to-buffer
  • C-h f find-file-other-window RET関数の組み込みドキュメントを示します。にリンクしdisplay-bufferます。の説明でdisplay-bufferはその操作の詳細が説明されていないため、そこから上記のElispマニュアルを参照するか、display-bufferをクリックしてソースを調べる必要がありますwindow.el
于 2010-12-30T23:13:24.340 に答える