vim でオムニコンプリーションまたはオムニコンプリーション関数を使用して、glibc 関数の自動補完を実現したいと考えています。たとえば、C ソース ファイルに pri と入力し、C-x C-o を押して printf を補完するリストをポップアップ表示します。
問題は、ctags を使用して、glibc-headers-2.15-57.fc17.i686 によってインストールされた標準 C ヘッダー ファイルを処理し、tags_glibc ファイルを生成することです。ただし、C ソース ファイルに pri と入力し、C-x C-o と入力すると、ポップアップ メニューには stdio2.h の printf の定義とプロトタイプ宣言のみが表示され、stdio.h の printf 宣言は表示されません。奇妙なのは、vim を使用して生成されたタグ ファイルを表示し、printf を検索し、次の 3 つのエントリを見つけたことです。
リーリー
同じ現象は、fprintf (このシンボルは stdio.h および stdio2.h で使用可能)、memcpy (string.h および string3.h で使用可能) などの関数でも発生します。
使用される ctags コマンドは次のとおりです:
リーリー
リーリー
質問滿天的星座2017-05-16 16:44:46
え
extern タグを含めます。 ctag は通常、関数または変数の extern 宣言を無視します。これは、独自のプログラムのタグを生成するときに便利です。システムの標準ヘッダー ファイル内の extern 宣言のタグ ファイルは非常に便利なリソースとなるため、この -e フラグが作成されました。
http://elvis.the-little-red-haired-gi より...
为情所困2017-05-16 16:44:46
タグファイルを使用する場合は、タグが配置されているディレクトリでvimを開く必要があります。
異なるディレクトリを使用する場合、vim で tags 変数を設定する必要があります。変数値はタグ ファイル パスです。例:
リーリー