2005-12-02

Emacs でウィンドウの高さを揃える

Emacs 21 になってからだと思う。ミニバッファーに一行で納まらない文字列を表示させると、上下に分けたウィンドウの高さが変わるようになった。

例えば、上のウィンドウで Emacs-w3m を、下のウィンドウでメモを書いているとする。Emacs-w3m で他のページにアクセスしようとリンクにカーソルを持っていくと、ミニバッファーにリンク先の URL が表示される。URL が query 系のアドレスで一行を越える程に長いと、Emacs はミニバッファーの高さを増やして、二行で表示してくれる。リンクを辿ると、ミニバッファーは空になって一行分の高さに戻る。その時、何故か、下のウィンドウの高さを一行分食べてしまう。結果、上のウィンドウは少し大きく、下のウィンドウは少し小さくなる。

最近は PHP やら何やらで URL が長いものが増えてきた。おかげで、少しウェブ・ブラウズすると下のウィンドウが使いものにならない程に小さくなってしまう。

この問題は、Emacs-w3m に限らずミニバッファーが二段以上で表示される場合に必ず起きる

解決編

ウィンドウの高さを変えるには C-x ^ (M-x enlarge-window) と M-x shrink-window (こちらはキー・バインド無し) が有効。これは Emacs の入門書に大概載ってる。

最近の Emacs ならウィンドウの区切り (上と下のウィンドウを分けてる部分) をマウスでドラッグできる!

以上、二つの方法はウィンドウが二つの場合にそこそこ使える。

問題は三つ以上ウィンドウを分けていた場合。

そんな時に使って欲しい (知っていて欲しい) コマンドが

  • M-x balance-windows

複数のウィンドウの高さを均等に再配置してくれるコマンド。C-x + にバインドされてる。マウスに手を伸ばす必要もないし、C-x ^ を何度も押す必要もない。適当に高さを揃えてくれるので便利。

最近のコマンドかと思ったら、1989-01-24 に入ったコード。かなり古い (ので、きっと Emacs 19 でさえ動くはず)。

ところで、このウィンドウの高さが変わってしまう問題、いつになったら直るのかしらん。それとも、もう、解決策はある?

No comments:

Post a Comment