Sunday, February 06, 2011

Emacs で別の window に移動するキーバインドを変更する

Emacs で画面を分割して作業しているとき、別の window に移動するためには C-x o とキー入力をしなければいけない。これが意外とめんどくさい。。。

ということで、もう少し楽なキー入力で別の window に移動出来るようにした。

設定した内容は以下の通り。これを ~/.emacs に書くだけ。

(global-set-key "\C-o" 'other-window)

この設定をするにあたって、参考にしたサイトは以下のサイトです。

いつもの操作がなんなのか調べる方法 - 32nd Diary(2010-12-12)


以前、C-h を delete-backward-char に設定していたので、その設定と同じような設定をすればいいんじゃないかっていう感覚。

(global-set-key "\C-h" 'delete-backward-char)

そして、別の window に移動するためのキーバインドがどの関数に割り当てられているか調べるために以下を入力。

[f1] - c
C-x o

C-x o が other-window に割り当てられていることが分かる。

よって、この other-window を global-set-key で C-o に割り当てることで、C-o で別の window に移動できる。

(ここまで想像。。。)

そして、実際にやってみたところ、別の window に移動出来たー!

ヽ(´∀`)ノ


C-o が何の関数に割り当てられているのか興味があったので調べたところ、デフォルトでは以下の関数に割り当てられていた。

Buffer-menu-other-window

Buffer-menu-other-window is an interactive compiled Lisp function in `buff-menu.el'.
(Buffer-menu-other-window)

Select this line's buffer in other window, leaving buffer menu visible.

バッファーメニューで選択しているバッファーを別 window で開き、カーソルはバッファーメニューに残したままに出来るらしい。試してみたところ、意外と便利だった。。。

まぁ、今回の設定をしたところで、C-x o が使えなくなった訳ではないので、バッファーメニューのときは C-x o を使って別 window に移動出来る。というか、global-set-key で C-o を other-window に変更したのに、バッファーメニューのときは C-o が効かないんだろう。。。まぁ、いいか。

これで、少し作業がはかどるといいな。

( ´ー`)

No comments:

Post a Comment