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つが今回追加したもの。