Window がたくさんあると帰ってくるのが大変でし。

どもです。

フレームを4つのウィンドウに分割しているとねぇ〜。

ワタシは,HHK Lite2 を使用しているので,ファンクションキーがノーマルな
キーボードに比べると「近い」です。
他のウィンドウに移動するには,デフォルトでは,「C-x o」を使用します。
しかし,ウィンドウたくさんあると,「C-x o」の連打はめんどい。
なので,F9 に other-window を割り当てています。
ちなみに,Ctrl-Tab にも割り当てています。
つまり,

(global-set-key (kbd "<f9>") 'other-window)
(global-set-key (kbd "C-<tab>") 'other-window)

ということです。


さてさて,ウィンドウが4つあるとします。
さらに,今,右上にいたとして,右下に用事があるとします。
はい,もちのろんで,F9一発ですね。ファイト一発ですね。ですね。
用事をすませて,右上のウィンドウに帰りたい。
さっきとは逆方向に移動すれば,一発ですよね。
しかし,ワタシはその方法を知らないので,
すごく遠回りに回って,左下=>左上=>右上とこれまでは移動してきたわけです。
しかし,やっとけふ,なぜに,右下=>右上と一発で帰ってこられないのだ? と
疑問に思いました。
また,F9連打しすぎて,目的のウィンドウを通り過ぎたら,目的地に到達するためには,
もう1周する必要があるのです。なんたる苦行。


ヘルプを調べたけど,other-window とは逆向きに移動できる関数を見つけられなかったので,
適当に。
※2011/10/12 (Wed) 18:44 に修正。SaitoAtsushi さん,サンクス!

(global-set-key (kbd "C-<tab>") 'other-window)
(global-set-key (kbd "<f9>") 'other-window)
(global-set-key (kbd "<f10>") (lambda ()
                                (interactive)
                                (other-window -1)))

幸運にも,F9のお隣のF10には,なんかメニューにフォーカスが移るという
今まで一度も使用したことのないコマンドが割り当ててあったので,
そこに上書き。


うまくいくと思ったけど,いや,ほぼうまくいったけど,
あるウィンドウで日本語入力状態になっていると,
そのウィンドウに移ったら,それ以降のF10がATOKに取られるね。
ま,いいか。
フレームが3つ以上に分割されていないと意味ないです,ちなみに。


別解としては,popwin.el を使用するパターンがあるかもしれないです。
しかし,バッファを指定したりする必要があったはずなので,
なんでもこいというわけにはいかないはず。

まとめ

F9とF10でよい旅を。
Bon voyage!