Enterキーを使用して(Ctrl-Nを押したときに表示される完了ポップアップから)候補を選択した後、Vimが改行を挿入し、カーソルが次の行に移動することがあります。これは常に起こるわけではありません-Vimはそれについて賢くしようとし、これが私が望むことだと思った場合にのみ次の行に移動するようです。
ただし、この動作を無効にしたいので(常に賢いとは限らないため)、手動でEnterキーを押して常に次の行に移動する必要があります。これは可能ですか?
Enterキーを使用して(Ctrl-Nを押したときに表示される完了ポップアップから)候補を選択した後、Vimが改行を挿入し、カーソルが次の行に移動することがあります。これは常に起こるわけではありません-Vimはそれについて賢くしようとし、これが私が望むことだと思った場合にのみ次の行に移動するようです。
ただし、この動作を無効にしたいので(常に賢いとは限らないため)、手動でEnterキーを押して常に次の行に移動する必要があります。これは可能ですか?
回答:
挿入補完の使用中に<Enter>キーを押したときのVimの動作は、補完メニューの状態によって異なります。メニューの動作は次のとおりです。
:help ins-completion-menu
挿入補完を使用する場合のさまざまなキーの動作については、次のセクションで説明します。
:help popupmenu-keys
<Enter>キーの動作はメニューの状態に依存することを説明しています。私が理解しているように、カーソルキーを使用してメニューから一致を選択した場合を除いて、<Enter>を入力すると改行が挿入されます。
改行が不要な場合に改行を挿入しないようにする最善の方法は、Ctrl-YやCtrl-Eなどの他のキーを使用して終了するか選択することです。
こちらもご覧ください
:help complete_CTRL-Y
挿入モード補完の場合の説明全体については、
:help ins-completion
このマッピングを.vimrcファイルに追加できます。
inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"
挿入モードのリターンキーを、ポップアップメニューが表示されているときにCTRL-Yを入力するようにマッピングします。CTRL-Yは、新しい行を入力せずに、メニューで現在選択されている項目を選択します。それ以外の場合は、リターンキーを通常のように動作させます。