之前只是少少的使用过vi,cscope,taglist和sourceNav,用的都不怎么熟悉。这次先了解一下现在Linux下流行的研发环境(参考 1),最后还是决定以vi为基础构造我的Linux研发环境。“VIM或EMACS做编辑器,GCC做编译器, automake做工程,doxygen做文档,cvs做管理”,这大概也是我希望的吧。另外有人提到svn,说是cvs的替代者。

安装步骤

1. 安装gcc等;

done in 《Ubuntu安装笔记》.

2. 升级vi到vim;

done in 《Ubuntu安装笔记》.

3. 安装ctags;

#sudo apt-get install ctags

4. 安装ctaglist;

http://www.vim.org/scripts/script.php?script_id=273

5. 安装cscope;

#sudo apt-get install cscope

6. 安装global;

#sudo apt-get install global

7. 安装cppcomplete

http://www.vim.org/scripts/script.php?script_id=273

工具简介(参考2)

总体使用的感觉定位查找类型定义基本能够用,但自动补全类型方面由于ctags的功能有限,感觉在大工程时,不一定很好用。

大型程式一定要global的参和,他的分析比较全面,但在vim中的提示信息有限。

taglist 精干,需要ctags的支撑 ,直接能够在左边列出函数列表,全局参数列表。(能够排序)

cscope 比较强大,能够对函数连同部分类型定义进行跳转,但有些BUG,似乎在某些条件下无法正确找到分析枚举的定义。

cppcomplete 需要ctags的支撑,能够补全类型或函数名(可不是普通Ctrl P/N的那种)

global 新版本能够嵌入vim使用,提供比较完整解析和类型索引,和cscope比,稍微差些的就是对类型引用的打印列表中没有标识这个引用在什么函数中进行的。其实我的感觉global可能不是为vim所生,他的主要目的是用html的方式进行表达相关的关联关系和索引,使用起来感觉没有cscope的那么贴切。

VIM

VIM在本机上被安装到/usr/share/vim/vim70目录下(用$VIM代指)。能够通过修改$VIM/plugin, $HOME/.vim下的文档内容和$HOME/.vimrc来配置VIM参数。

使用gvim或vim -g能够启动图像界面的vim。

VIM比如Ctrl-N能够实现自动补全,[I 能够查看光标所在处的函数的声明,Ctrl-]跳转到函数声明所在的文档,gd则是在当前文档跳转到局部变量的声明处。

CtagList

在VIM中用

":TlistToggle" command to open/close the taglist window.

":help taglist" command to get more information about using the taglist plugin.

Ctags

Q:如何看到标准库文档中的定义?

A: 在您的目录下建一个链接到标准库的源代码,然后

ctags -R *

vi -t printf

就能够看见了。