iTerm で Command key をMETAキーとして使用するもう一つの方法

Emacsを使っているとShellのコマンドラインでもWord単位で移動する META-b とか META-f とか、C-y 後に META-y したくなったりする。
MacユーザーはCommandキーがoptionよりも押しやすいので、CommandキーをMETAキーとして使いたいとも思う訳だ。

Leopardに元々ついているTerminal.appはいまいちなので、俺はiTermを使ってるが、CommandキーをMETAキーとして使用するわりと簡単な方法が分かったので書いておく。

日本でも外国でもパッチを当てる方法がよく見つかる。
http://openlab.dino.co.jp/2007/10/30/095010128.html や、id:hnw:20081219 をみていろいろやってみた。

俺も格闘してパッチを当てる方法も試してみて、それはそれでちゃんと動いたが、iTermのソースに手にも、外部ツールにも頼らずにやれるという結論になった。
その方法を紹介する。
情報元は下記。

http://ninjamonkeys.co.za/forum/index.php?topic=598

Bookmarks > Manage Profiles から Keyboard Profiles のGlobalの方にMappingを追加すればOK。
META-f, META-b, META-yを追加する場合は下記のようになる。

■ Command-b
Key=hexcode 0x62
Modifier: Command
Action: send escape sequence => b
High interception priority にチェック

■ Command-f
Key=hexcode 0x66
Modifier: Command
Action: send escape sequence => f
High interception priority にチェック

■ Command-y
Key=hexcode 0x79
Modifier: Command
Action: send escape sequence => y
High interception priority にチェック

hex(Key) char Key Function(Emacs) Desc
62 b CMD-b backward-word 単語単位で戻る
66 f CMD-f forward-word 単語単位で進む
64 d CMD-d kill-word 前の単語を削除
79 y CMD-y yank-pop Yank Ringからポップ

■Yank Ring からPop について
C-y で最後にkillした文字を貼り付けられるが、直後に、CMD-y を押すと、そのもうひとつ前にkillした単語を張り付けられる。
CMD-y を連続して入力すると、その都度、yank ring をさかのぼって kill した文字列が挿入されるので、目的のものがでるまで CMD-y すればいい。

他のキーも必要な場合は、hexcodeの部分は man ascii で調べて追加すればいい。
下記は上記3つを追加した後のスクリーンショット。上から3つが今回追加したもの。