iTerm2 上のコンソールにてカーソルを単語単位で移動する方法
TL;DR
- iTerm2 のキー設定 (Preferences -> Profiles -> Keys) を開き General の Option Key を Normal から Esc+ へと変える
- Option+f で一単語前へ進む、Option+b で一単語戻る
解決までの道のり
bash にはデフォルトで単語単位でカーソルを移動させる処理が設定されている。zsh、fish でも同様のキーバインディングがなされている。例えば Alt+f を押すと単語単位で前に進む、Alt+b を押すと単語単位で後ろに戻るというものだ。
Mac では Alt に相当するキーは Option である。そこで Mac にインストールした iTerm2 上のコンソールで Option+f を押してみると ƒ
という文字が、Option+b を押してみると ∫
という文字が意図に反して入力されてしまう。これは Mac では Option が特殊文字の入力のために準備されているためである。
これを回避するには iTerm2 のキー設定 (Preferences -> Profiles -> Keys) を開き General の Option Key を Normal から Esc+ へと変える。私は移動時には左側の Option Key のみを利用するので冒頭の画像のとおり Left Option key のみ変更した。
解決には検索して発見した https://iterm2.com/faq.html の回答を参考にした。
Q: How do I make the option/alt key act like Meta or send escape codes?
A: Go to Preferences > Profiles tab. Select your profile on the left, and then open the Keyboard tab. At the bottom is a set of buttons that lets you select the behavior of the Option key. For most users, Esc+ will be the best choice.
余談
Mac にて Option を押したときにどのような特殊文字が入力できるのかは、Mac のメニューバーにある文字入力メニューをクリック -> キーボードとビューアを表示 -> option ボタンをクリックという手順でみられる。fの位置が ƒ
、bの位置が ∫
になっていることがわかる。
Discussion