2

最近、ctrl+n または ctrl+p を使用してオートコンプリートしようとしたときに、複数の選択肢がある場合、Enter ボタンをタップすると、必要な選択肢を選択する代わりに新しい行が挿入されます。

これは以前は発生しませんでした。おそらく、インストールしたプラグインが多すぎて競合が発生したためです。これらすべてのプラグインのカット カットをチェックしてソースを見つけるのは恐ろしいことです。したがって、組み込みのオートコンプリートを他のキーにマッピングすることは解決策になる可能性がありますが、その方法はわかりません。

これは大きな問題ではありませんが、実際にはコーディングが「スムーズ」ではなくなりました。誰もが以前にこの状況に遭遇したことがあり、どのように対処しましたか.

4

2 に答える 2

3

<cr>簡単な答え:一致を受け入れるために を使用する必要はありません。

vim ヘルプのスニペット:h popupmenu-keys

The behavior of the <Enter> key depends on the state you are in:
first state:      Use the text as it is and insert a line break.
second state:     Insert the currently selected match.
third state:      Use the text as it is and insert a line break.

In other words: If you used the cursor keys to select another entry in the
list of matches then the <Enter> key inserts that match.  If you typed
something else then <Enter> inserts a line break.

<c-n>と を使用し<c-p>て正しいマッピングに切り替えてから、入力を続けることをお勧めします。通常、これは、スペースまたはその他の句読点キーを入力すると、メニューが閉じることを意味します。<cr>メニュー項目を選択することはありません。ただし、本当に一致を受け入れたい場合は、 を使用します<c-y>。選択したメニュー項目に「はい」と考えます。

于 2013-08-01T16:23:19.003 に答える
0

vim-autoclose プラグインが原因で発生した非常によく似た問題を、Auto-Pairs プラグインに置き換えることで修正しました。あなたがまったく同じ犯人であるとは思えませんが、プラグインに病原体を使用している場合、実際には有罪の当事者を追い詰めることはそれほど悪くはありません.プラグインの半分を~/.vim/bundle別のフォルダから(またはどこにでも)移動し、vimを再起動してテストしてください.オートコンプリート。期待どおりに動作する場合は、移動したプラグインの 1 つが原因であることがわかります。そのため、絞り込むまで同じことを繰り返すことができます。

その前に、.vimrc ファイルを無視する実行を試すこともできvim -u NONEます。何かを自分の中に忍び込ませた可能性があり、これがそれを除外する最速の方法です。

とにかく頑張ってください。これには約 10 分かかりましたが、おそらく 1 年間は時折イライラしていたので、もっと早く時間をとっておけばよかったと思います。

于 2013-08-01T15:58:07.190 に答える