acp.vim で補完候補が表示されてるときにEnter押したら入力されてる途中までの文字列で決定して改行する (できなかった)
なんつーわかりづらいタイトル.
AutoComplPop のときはできてたんだけど,acp.vimのバージョンになってから例えば,
fal
まで入力してて,補完候補に
false FALSE
みたいに表示されてるとき,ここでEnter押すと,最初の候補が挿入されて改行されてしまうようになってしまっていた。(つまり,false となって改行されていた)
で,ずっとなんでだろって思ってたんだけど,vimrc に以下のような設定を書いてたのが問題だったくさい.
inoremap <expr> <CR> pumvisible() ? "\<C-Y>\<CR>" : "\<CR>"
これは前のAutoComplPopのときに,この問題を解決するために本体に手をいれてこの設定を加えてたんだけど*1,どうやらこの設定ではだめになってたようで。
pumvisible() 関数はポップアップが表示されてるかどうかを判断する関数らしいので(それを知らなかった),まあ挙動がす気になるように修正。
inoremap <expr> <CR> pumvisible() ? "\<C-p>\<CR>" : "\<CR>"
これで,
fal
の状態で Enter を押したときに,
fal
で下の行にカーソルがある感じの挙動になった。
細かいけどこういうのって割と身体に染み付いちゃってるからシビアな設定だよね。
追記:
いや,これじゃだめだった,普通に選択できないwどうすりゃいいんだべ
*1:なんでだっけな, http://subtech.g.hatena.ne.jp/cho45/20071111/1194766579 このへんの見て設定してたのかも