Ubuntu 8.04 を実行しており、次のコマンドを実行しました。
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/tags/stdlibcpp /usr/include/c++/4.2.4/
OmniCppComplete vim スクリプトで使用するために、私のシステムで標準 C++ ライブラリと STL ( libstdc++ ) の ctags データベースを生成します。これにより、非常に適切に機能する 4MB のタグ ファイルが得られました。
ただし、インストールされている Boost ヘッダーに対して同じコマンドを実行すると、次のようになります。
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/tags/boost /usr/include/boost/
最終的に 1.4 GB のタグ ファイルになりました。 まだ試していませんが、大きすぎて役に立たないようです。インストールした Boost ヘッダー用のよりスリムで使いやすいタグ ファイルを取得する方法はありますか?
編集
注意として、libstdc++ には TR1 が含まれており、Boost ライブラリが割り当てられています。したがって、libstdc++ が 4 MB のタグ ファイルを生成し、Boost が 1.4 GB のタグ ファイルを生成するには、何か奇妙なことが起こっているに違いありません。
Boostメーリングリストでこれに出くわしました:
答え
問題の原因を突き止めてくれた Neg_EV に感謝しますが、彼が提案したよりもはるかに優れた問題解決方法があります。
apt-file がインストールされていることを確認し、次のコマンドを実行します
(ライブラリタグを ~/.vim/tags/ に保持します):
$ sudo apt-file update
$ apt-file list boost | grep -E -o '/usr/include/.*\.(h|hpp)' | grep -v '/usr/include/boost/typeof/' > ~/.vim/tags/boost-filelist
$ ctags --sort=foldcase --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/tags/boost -L ~/.vim/tags/boost-filelist
Ubuntu 10.04 と Boost 1.40 にアップグレードしました。これでこのソリューションをテストしましたが、私が知る限り、どの Boost バージョンでも動作するはずです。