LoginSignup
8
5

More than 5 years have passed since last update.

Mac: pecoでカーソルキーを使ったら表示がバグったときの対処法

Posted at

ターミナルの出力をフィルタリングしてくれるpecoをMacでインストールしたのですが、カーソルキー(矢印キー)を使うと、下記のように表示がバグりました:

入力 pecoの入力ラインに表示される出力
↑ (上キー) [A
↓ (下キー) [B
→ (右キー) [C
← (左キー) [D

調べた結果、iTerm2の設定が悪かったようなので、それを直す方法をシェアします。

環境(この話の前提)

  • OS X El Capitan 10.11.6
  • iTerm2 3.0.9
  • zsh 5.2 (Homebrewで入れたもの)

原因

自分のケースでは、実際に叩いているキーと、ターミナルがプログラムに送るコードが違うことが原因でした。

FAQ - iTerm2 - macOS Terminal Replacement

Q: Why my arrow/HOME/END keys are not working?

A: When the terminal type of your sessions is set to one of those "xterm" types, iTerm2 handles the arrow keys, the home key, and the end key in a special way.

つまり、 iTerm2で「Terminal Type」を「xterm」(あるいはxterm-256colorなど)にすると、矢印キーとHomeキーとEndキーが、特殊な形でプログラムに送信される 、とのことです。

もっと詳しい原理については下記で説明されているので、気になる方はご覧ください。

[terminal - Caret square bracket square bracket A ^[[A - What does it mean? - Unix & Linux Stack Exchange](http://unix.stackexchange.com/questions/222901/caret-square-bracket-square-bracket-a-a-what-does-it-mean)

対処法

iTerm2のキーマップを変更します。

  1. 設定画面(Preferences)で下記の設定箇所に移動する:
    • 「Preferences... > Profiles > (自分が使っているプロファイル) > Keys」
  2. 「Key Mappings」の表の下に並んでいるボタン「Load Preset...」を選択し、「Terminal.app Compatibility」に設定する。

この設定をして再びpecoを使うコマンドを叩くと、カーソルキーが使えるようになっているはずです。

以上です。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5