C++ 建立独立的ctags数据库';s代表C/C++;标准LIB、boost和第三方LIB

C++ 建立独立的ctags数据库';s代表C/C++;标准LIB、boost和第三方LIB,c++,c,linux,vim,ctags,C++,C,Linux,Vim,Ctags,我想在/usr/include/中为各种库设置单独的ctags数据库,以便与一起使用 这个想法是能够只使用目标语言中的特定项目所需的库-C或C++。 例如,我希望有一个标准C库的数据库,一个用于C或C++程序(socket /网络)的系统库,一个用于标准C++ LIBS/STL /Boost,然后是其他第三方库的数据库,如Qt或GLIB。然后,我可以通过在vim中键入set tags+=~/.vim/somelib.tags来拉入一些内容 我假设与C++ STDLIB和STL相关的所有东西都在>

我想在
/usr/include/
中为各种库设置单独的ctags数据库,以便与一起使用

这个想法是能够只使用目标语言中的特定项目所需的库-C或C++。

例如,我希望有一个标准C库的数据库,一个用于C或C++程序(socket /网络)的系统库,一个用于标准C++ LIBS/STL /Boost,然后是其他第三方库的数据库,如Qt或GLIB。然后,我可以通过在vim中键入

set tags+=~/.vim/somelib.tags
来拉入一些内容

我假设与C++ STDLIB和STL相关的所有东西都在>/Ur/Cube /C++ +/Cudio>中,并且Boost都在>/Ur/Pix/Booox中。不幸的是,标准的C库和系统库似乎只是直接转储到

/usr/include/
和其他各种东西中

如何获取哪些文件和目录属于哪些LIB的列表?我在Ubuntu 8.04上。

是你在Ubuntu上的朋友

以下命令将为您提供Boost的所有包含文件的列表:

apt-file list -x "^libboost" | grep '/include/' | cut -f2 -d:
我把剩下的留给读者做练习


Update:为了完整起见,如果您以前从未使用过
apt file
,请调用
apt file Update

一个有趣的问题,但如果您最终想要的是如何区分标题,那么标题可能会误导您?知道哪些目录属于哪些libs重要吗?@Johnsyweb:Yeah,主要是哪些文件和子目录属于标准C库,哪些文件和子目录属于系统库,比如网络。这很有意义。如果我再看一遍标题,我就不需要问:-)我在我的系统上试过了,初始的
apt文件列表-x“^libboost”
根本不产生任何输出。这很奇怪。Boost是使用apt安装的吗?如果您尝试
apt文件列表-vx'^libstdc++
@Johnsyweb,您会得到什么:我使用
sudo-apt-get-install-libboost-*
安装boost。您刚才给我的命令显示了一个deb存储库列表。我希望在详细的[
-v
]输出的开头看到一堆deb存储库,但是我希望看到作为
libstdc++6-4.4-doc
等的一部分安装的所有文件的列表。我不知道为什么这对您不起作用。我已经在许多Ubuntu 10.04安装上测试过了。@Johnsyweb:tweek-
cut
在每行输出的开头加上一个空格,这会使CTAG发臭。剪切
Cut
并改用它:
apt文件列表libc6 dev | grep-o'/usr/include/*h'>~/.vim/tags/libc6文件列表