Neovimを起動直後に「あいうえお」と入力すると「いうえおあ」になる、という問題に直面しました。このときの解決法をご紹介します
状況
- Neovimを起動する
- インサートモードに入る
- 「あいうえお」と入力
- 先頭の文字が末尾に移動して入力される
しかも二回目以降は普通に「あいうえお」と入力できる、という謎の現象でした。
解決策
deinlazy.tomlの記述がまずかったようです。
[[plugins]] repo = 'Shougo/neosnippet.vim' on_ft = 'snippet' on_event = 'InsertCharPre' depends = ['neosnippet-snippets']
on_eventをInsertEnterにしたら直りました。
[[plugins]] repo = 'Shougo/neosnippet.vim' on_ft = 'snippet' # on_event = 'InsertCharPre' on_event = 'InsertEnter' depends = ['neosnippet-snippets']
なぜ直ったのか
内部の動作まではわかりませんが、おそらく
- InsertCharPreは入力が確定する直前に読み込む設定
- InsertEnterはインサートモードに入ったときに読み込む設定
ここらへんがポイントだったのではないでしょうか。二回目以降の入力では普通に入力できたのも「プラグインが読み込まれたから」だと考えれば合点がいきいます。