OS X では、次のコマンドを使用してシステム インクルードの一連の ctags を生成しました。
ctags -f c -h ".h" -R --c-kinds=+p --fields=+iaS --extra=+q /usr/include
これは~/.vim/ctags/
、システム全体のヘッダー ファイル用に生成したすべての ctags を配置したディレクトリ内で実行されました (条件付きでロードする ROS と CPP 用のものもありますが、ここにもそこにもありません)。
ともかく。ctags ファイルは私の .vimrc で正しく設定されており、vim は間違いなく ctags を認識できますが、何らかの理由で、#include
シンボル全体を書き出してからバックスペースを開始すると、オートコンプリート ポップアップには d ヘッダー ファイルからの結果しか表示されません。たとえば、#include <string.h>
プロジェクトで を呼び出しstrlen()
、アクティブな vim バッファーに入力を開始するとstr
、現在 vim バッファーにあるシンボルの結果のみが取得されます。しかし、入力してからstrlen
1 文字または 2 文字のバックスペースを開始して を押すと<C-n>
、ポップアップ メニューには、含まれている他のヘッダー ファイルからの一致が表示されます。
編集:「s」を押すだけ<C-n>
で、それも機能することがわかりました。したがって、問題は、ポップアップ メニューが手動で起動された場合にのみ機能することです。これは、プラグインの問題だと思います(以下を参照)
追加情報:
completeopt
に設定されていますcompleteopt=menuone,menu,preview,longest
私はOmniCppCompleteを持っていますが、これは動作に干渉している可能性があります。現在、C++ ファイルに対してのみ、条件付きでロードされていません。OmniCppComplete の設定を .vimrc から編集して投稿してほしい場合は、お尋ねください。
AutoComplPopもインストールしていますが、何も構成していないため、既定の設定で実行されています。プラグインを実際に調査していないため、プラグインの動作の一部が結果に干渉している可能性があるかどうかはわかりません.
AutoTagとTagBarをインストールしましたが、これらは現在のディレクトリのローカル タグファイルをいじるだけです。
正直なところ、私は Vim にかなり慣れていないので、この問題のデバッグをどこから開始すればよいかわかりません。ランダム プラグインを使用するか、.vimrc 設定を使用するかは関係ありません。