反省はしても後悔はしない

Vim とか備忘録とか。それと関数型言語勉強中

Vim のインサートモードで方向キーが A B C D になる・・・。

現象

Vim のインサートモード時に hoge と入力したあと、方向キー(↑、↓、→、←)を入力すると、

D
C
B
A
hoge

みたいな感じで1行上に移動しながら A B C D という文字入力になる。
まぁ、普段はあまり方向キーを入力しないので気にならないです。
が、neocomplcache で補完候補を選ぶときにも文字入力になってしまうので候補が選べなくなってしまいました・・・。

解決策

.vimrc に以下を追加

imap ^[OA <Up>
imap ^[OB <Down>
imap ^[OC <Right>
imap ^[OD <Left>

ちなみに入力方法は imapスペースのあとに Ctrl-V上矢印。
私の環境だと ^[ の部分の色が変わります。

原因

環境にもよると思いますが、どうやら、Vim のインサートモード時のカーソル移動は ANSI のエスケープシーケンスで行われているみたいです。
一連のエスケープシーケンスの途中が Vim に解釈されてしまって、最後の A B C D が入力されてしまう感じ?