iTerm2, iTerm3 で⌘+? で Meta+? なキーボード操作を行う設定

Mac でコマンドなどを実行するための Terminal として、iTerm2, iTerm3 を使われている方が多いかと思います。 Linux などでの XTerm などの Terminal に使い慣れている方でしたら、Altキーと何かを組み合わせて Esc+? な Emacs 形式のカーソル移動などをされている場合もあるでしょう。例えば下記のような操作です。
Esc + f : 1単語進む
Esc + b : 1単語戻る
Esc + d : カーソル後ろの1単語を消す
Esc + backspace: カーソル前の1単語を消す

これをMacのキーボード操作の ⌘(Command) + ? で操作したい方も多いかとおもいます。この操作を行うための私の設定方法を紹介します。

⌘(Command) と Option を入れ替える


Remap Modifier keys の設定

iTerm2,3 の設定 (Preference ⌘,) の Keys タブにある Remap modifier keys の設定で、入れ替えたい左右の⌘とOption のキーを入れ替える方法があります。ここで、⌘とOption のキーを入れ替えた場合、コピペ機能のクリップボードにテキストをコピーするときには Option + C といったキー操作になるので、こんどはクリップボード操作をするときに少し困ることとなります。

クリップボード操作が不便なため、既に私はこの設定方法をやめました。

キーボードショートカットにエスケープシーケンスを登録


iTerm2, iTerm3 の Preference

登録したいキー操作は ⌘+b,d,f,delete だけなので、これらをKey Mappings に登録する方法です。

キーボードショートカットの登録例1 : Send Escape Sequence

登録方法の1つ目は、登録する内容を Action=Send Escape Sequence登録する方法。 Action のところで Send Escape Sequence を選択し、送出するキーを設定します。
ただしこの方法では、⌘+Deleteの設定ができませんので、このキーシーケンスだけは後術のHex Codeを設定する方法で設定します。

キーボードショートカットの登録例2 : Send Hex Code

もう一つは登録する内容を Send Hex Code で設定する方法。送出するコードを16進数で設定します。送出するコードを調べるには、下記のように echood -tx1a を使って調べられます。
$ echo -n '^[bfd^?' | od -tx1a
0000000 1b 62 66 64 7f
esc b f d del
0000005

上記から、各キーシーケンスの Hex Code をこのように設定しました。
Key  Escape Seq   Hex Seq
⌘b ESC b 0x1b 0x62
⌘f ESC f 0x1b 0x66
⌘f ESC d 0x1b 0x64
⌘Del ----- 0x1b 0x7f


2016/08/30 追記: 他のアプリのWindowを閉じる時に ⌘+W のキーを iTerm2 にフォーカスがあたっている状態でタイプして酷い思いをしたので、 ⌘+W は Ignore (何もしない) な設定にしてみました。

iTerm2のKey shortcut設定

コメント

このブログの人気の投稿

パスワードを覚えるのも無理があるから、パスワードマネージャ使いましょう。

大型特殊自動車免許を取った時の話。

車両系建設機械運転者(整地) の講習