Emacs では C-x 2
や C-x 3
で画面を複数のウィンドウに分割することができ、これらの間は C-x o
でトグルして移動することができます。しかし、みっつ以上に分割した場合には C-x o
といふ2ストロークのキーバインドを連打する必要があり、戻りたいときにも標準では C-u C-x o
も利かない不親切仕様です。
ところで、 tmux
といふターミナルマルチプレクサ (GNU Screen のご同類です) には、複数の分割した領域を C-b [←↓↑→]
で移動できる設定が標準であります。これを拝借してきませう。
Emacs には標準で windmove
といふ機能が含まれてゐます。 M-x windmove
と押すと、特に設定してなくとも windmove-{left,down,up,right}
函数がご利用いただけることが確認できると思ひます。これがまさに tmux
の移動と同様のものですので、ここにキーバインドを設定してやれば良さげですね。
(global-set-key (kbd "C-c <left>") 'windmove-left)
(global-set-key (kbd "C-c <down>") 'windmove-down)
(global-set-key (kbd "C-c <up>") 'windmove-up)
(global-set-key (kbd "C-c <right>") 'windmove-right)
できましたー。
しかし…
あれっ、まったく同じことやってた…
ちなみに最初はプレフィックス C-c
じゃなくて C-x
でやってましたが、最近ちょっと使ひ始めてみた EmacsWiki: Back Button の標準キーバインドと衝突してたので、晴れて EmacsWiki 版と同じに戻ってしまひましたとさ。ちゃんちゃん。