3

目の前にemacsがあります。

find-grepを実行しましたが、多くのヒットがあり、ウィンドウに表示されます。ファイル名はハイパーリンクとして緑色で表示されます。

私はそれをCx1で唯一のウィンドウにします。

ファイル名をクリックすると、ウィンドウが縦に分割され、見つかったテキストを含むファイルが別のウィンドウに表示されます。

さらにファイル名をクリックすると、新しいファイルが古いファイルに置き換わります。これが私が望んでいることです。

ここまでは順調ですね...

ただし、ウィンドウのサイズを変更すると、emacsは定期的に(クリックすると)2つのウィンドウの1つを再度分割し、表示が読みにくくなります。次に、2つの新しいウィンドウ間で新しいファイルを開くことを繰り返します。時折、それはより多くのウィンドウを開き、状況を悪化させます。これらの新しいウィンドウのいずれかを閉じると、再び開かれます。

実際、サイズを変更しなくても、この不正な動作が発生することがあります。私がそうするならば、それはただもっと頻繁に起こるようです。

emacsにバグをやめさせ、find-grepウィンドウと'display'ウィンドウを1つずつ用意し、常に表示ウィンドウを新しいファイルに置き換えたいと思います。また、これらのウィンドウを最も便利と思われるサイズに設定できるようにしたいと思います。

これを達成する方法はありますか?

または、全体(このウィンドウの内容を置き換える/別のウィンドウの内容を置き換える/分割して別のウィンドウを作成する)がどのように機能するかについてのエッセイを誰かに教えてもらえますか?

4

1 に答える 1

2

簡単な修正:これを試してください

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

これにより、Emacsがウィンドウを自動的に(水平または垂直に)分割するのを防ぎます。これは他の状況では望ましくないかもしれませんが、これでうまくいくはずです。1週間ほど試して、流れが妨げられるかどうかを確認してください。

また、ポイントがウィンドウの1つにあり、リンクをクリックすると、ファイルが次のウィンドウ(存在する場合)で開かれることがわかりました。

したがって、ファイルを右側のウィンドウで開きたい場合(複数のウィンドウがある場合)、ポイントが目的のウィンドウの前のウィンドウにあることを確認できます。

長い答え:

わかった。問題を再現することができました。サイズを変更したため、ファイルがかなり大きい(幅または高さ)ことを示すウィンドウが表示されます。Emacsは、幅または高さがそれぞれのしきい値よりも大きいことを確認し、同様に分割します。したがって、しきい値を高くするか、動作を完全に禁止する必要があります。

そして、最後のいくつかの質問に答えるためだけに:

  • 現在のウィンドウを取得するには-(selected-window)
  • 次のウィンドウを取得するには-(next-window)
  • ウィンドウを選択するには-(select-window foo-window)
  • 現在のウィンドウのバッファを取得するには-(current-buffer)
  • いくつかのウィンドウのバッファを取得するには-(window-buffer foo-window)
  • ウィンドウのバッファを設定するには-(set-window-buffer foo-window bar-buffer)

これらの関数を使用して、まともなウィンドウ/バッファ管理関数を一緒にハックできると確信しています。

C-h fこれらの各関数の詳細を取得するために使用できます。Elispのマニュアルもチェックしてください-http ://www.chemie.fu-berlin.de/chemnet/use/info/elisp/elisp_26.html

于 2012-06-07T12:10:28.280 に答える