iTerm2 で alt+n を矢印キーに置き換えたい


問題

iterm でたまに間違って alt+n や alt+p を押してしまって、よくわからない制御コードが入ってしまうことがある。下記のように設定したい。

キー入力 出力
alt + p
alt + n

しかし通常のキーアサインでは矢印を入力することができない。

解決策

メニューのPreferences > Profiles > Keys で + ボタンを押して下記のように設定すれば期待した結果になる。

解説

この記事 https://tanishiking24.hatenablog.com/entry/readascii が参考になった。

read key; echo "$key" | hexdump

を実行して矢印キーを入力する。たとえば上矢印を入力して enter を押すと下記のように表示される。

0000000 1b 5b 41 0a

これを見ると iterm で矢印キーが与えているキーコードがわかるらしい。この場合は 1b 5b 41 が上矢印が与える拡張キーコードとなる。なので iterm に 1b 5b 41 という hex code を与えれば上矢印を与えたのと同じ結果になる、という。同じようにして下矢印のコードを送ると 1b 5b 42 というコードが得られる。