ctags与系统头文件划分

Vim、Emacs配置和使用
回复
sarrow
帖子: 403
注册时间: 2007-10-27 1:04

ctags与系统头文件划分

#1

帖子 sarrow » 2011-12-11 11:32

Ctags工具的好处,就不多说了。
linux的文件组织,也比windows下先进;比方说,C语言、C++语言系列的头文件,都基本放
在固定的几个地方,查找起来十分方便。(windows下,如果要使用vs系列,编译器,又要
使用第三方库的头文件,就得现配置一番,因为,比如头文件的位置……)

头文件查找是方便了,但是头文件涉及到的ctags标签的生成就麻烦了。

因为ctags的行为,默认是对当前目录下所有的文件,进行创建标签库的操作。那么,别说
,用ctags抽取stl标签,有问题;ctags抽取boost标签,甚至会吃光硬盘;这样的大问题了
,光是想,几十M的标签文件,一次性包含进来,而实际工程中,往往只会用到其中一小部
分标签。

并且,如果临时安装其他的库的话,如何只更新一部分标签呢?

有点头大——这个时候,我反而怀念起windows下面了——因为,不同的库,其头文件往往
分存中不同的文件夹下面。

不知道,各位linux达人,有没有如此烦恼?如果有的话,又是如何解决的呢?
xvii
帖子: 54
注册时间: 2008-03-12 14:33

Re: ctags与系统头文件划分

#2

帖子 xvii » 2011-12-11 12:38

我习惯分开生成常用的tags,然后再加入对应变量,这样就不会搜索那些使用频率较低的tags。

代码: 全选

"" CTags {{{
if has('win32')
	" 添加额外的 tags,需要先生成。
	set tags+=C:/GTK/include/tags
	set path+=C:/GTK/include/,C:/GTK/include/*
	set tags+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtGui/tags
	set path+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtGui/,C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtGui/*
	set tags+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtCore/tags
	set path+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtCore/,C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtCore/*
	set tags+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtNetwork/tags
	set path+=C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtNetwork/,C:/QtSDK/Desktop/Qt/4.7.4/mingw/include/QtNetwork/*
else
	set tags+=/usr/include/gtk-2.0/gtk/tags,/usr/include/gtk-2.0/gdk/tags
	set path+=/usr/include/gtk-2.0/gtk/*,/usr/include/gtk-2.0/gdk/*
endif
" }}}
哪位可以帮忙改得更智能一些吗。
操作系统:Linux erocpil 2.6.38-gentoo-r6 #2 SMP Sun Sep 11 10:15:16 GMT 2011 x86_64 Intel(R) Core(TM)2 CPU T5200 @ 1.60GHz GenuineIntel GNU/Linux
编程语言:C/C++,Perl。
谷歌代码:manshow-重新编译的win32版本Vim,加入诸多特性:非等宽中文字体(如微软雅黑),脚本语言接口(如Perl,Python,Lua),透明效果等。
个人主页:http://lyx.us.tc/
sarrow
帖子: 403
注册时间: 2007-10-27 1:04

Re: ctags与系统头文件划分

#3

帖子 sarrow » 2011-12-11 13:55

呵呵,找到一个同病相怜的人了。

windows下面,我是用定义搜索目录来解决的。对含有include文件夹的,自动加入set include;
至于tags文件,我则是手动加入——

TagsInclude <tab>
会自动补全。

需要加入那个库,就加哪个库的tags。

linux下面,我反而头痛了——因为,n多头文件,基本就放一个地方。C标准头文件、glibc头文件、posix头文件。

郁闷了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: ctags与系统头文件划分

#4

帖子 eexpress » 2011-12-11 21:13

dpkg -L xxxx-dev|grep '\.h$'
不就可以获取指定的头文件了嘛。
● 鸣学
sarrow
帖子: 403
注册时间: 2007-10-27 1:04

Re: ctags与系统头文件划分

#5

帖子 sarrow » 2011-12-11 21:19

ee也来了。

那有没有一个列表什么的 ,说明已经安装了哪些库的头文件?

另外,标准C的头文件列表,不能像这样获得吧?
dpkg -L xxxx-dev|grep '\.h$'
回复