2

私は通常、1 つのフレームを垂直に積み重ねられた 2 つのウィンドウに分割した emacs を使用します。

emacs 23 (およびそれ以前) では、コンパイラの警告のある行に遭遇すると、エコー領域/ミニバッファーが展開されてメッセージのテキスト全体が表示されます (メッセージが複数行の場合) が、2 つのメイン ウィンドウそれ以外の場合は影響を受けません (そのため、下部ウィンドウの表示が一時的に 1 行または 2 行失われる場合があります)。

しかし、emacs 24 では、一番下のウィンドウ全体 (ミニバッファーの上) が上に移動するため、一番上のウィンドウの表示が一時的に 1 行または 2 行失われます。一番下のウィンドウ全体が移動し、emacs 23 (およびそれ以前) の動作に戻りたいと思うのは、非常に視覚的に当惑させられます。

私はemacsマニュアル(ウィンドウ、フレーム、ミニバッファ、エコーエリア)とバージョン24 NEWSに目を通しましたが、この動作を引き起こす可能性のある変更やこれを制御できる可能性のある変数についての言及を見つけることができませんでした行動。任意のポインタをいただければ幸いです。

アップデート:

動作を再現するには:

  1. emacs 24 を開き、フレームを 2 つのウィンドウに分割し、上下に並べます。
  2. トップウィンドウでテキストでいっぱいのバッファを開きます
  3. "*scratch*"下のウィンドウでバッファを開く
  4. このスニペットをスクラッチ バッファに追加し、カーソルから ( , を使用して) 実行しますeval-last-sexpC-x C-eテスト メッセージがウィンドウ内でラップするのに十分な長さであることを確認してください。

(message "this is a very long message that will cause the minibuffer window to show more than one line of text and cause the whole bottom window to shift as a result in emacs 24")

これにより、ミニバッファーがメッセージを表示"*scratch*"するとバッファー ウィンドウが上に移動し、メッセージが消えると下に戻ります。emacs 23 で同じテストを試みると、"*scratch*"バッファ ウィンドウは動きません

更新 2:

さらに明確にするために(私の説明は一部の人にとって混乱を招く可能性があります)、ミニバッファの動作に問題はありません。ミニバッファーの動作は問題なく、変更されていません (すべてのテキストを表示するために一時的にサイズが変更されます)。私が言及している動作は、ミニバッファーののウィンドウ (2 つのメイン バッファー ウィンドウの下部のウィンドウ) の動作です。emacs 23 では、このウィンドウはまったく移動しませんでした(そのため、下の行が一時的に隠されていました)。emacs 24 では、ミニバッファーのサイズが変更されると、このウィンドウ内のすべてのテキストが上に移動します。これは新しい問題のある動作です。

4

1 に答える 1

2

お使いのバージョンでこの動作の変更が発生した正確な原因はわかりませんが、24.2.50.1 で復元され、できればそれ以降のバージョンで復元されるようです。

于 2012-11-06T20:42:17.310 に答える