当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 全力打造自己的Linux操作系统开发环境

Unix/Linux
FreeBSD 数据转移办法
Freebsd 下运行QQ For Linux 的方法
FreeBSD, Debian, CentOS一个网卡绑定多个IP
freebsd下切换到root下 su: Sorry 的解决办法
Freebsd挂载光驱和软驱
FREEBSD下运行调试asterisk
一些 freebsd 的常用命令
笔记本上安装freebsd的小知识
FreeBSD系统下添加中文字体
FreeBSD挂载DOS分区,正确显示中文
FreeBSD挂载DOS分区时显示中文的方法
freebsd7.0安装系统图解(最新版)
服务器的时间同步设置方法
FreeBSD FTP 的架设教程
FreeBSD mpd VPN服务器安装步骤
更新FreeBSD Port Tree的几种方法小结
portupgrade 中文手册(翻译)
freebsd 服务器 ARP绑定脚本
在Ubuntu系统中定制 Compiz Fusion 特效
Ubuntu 7.10 绑定IP及MAC地址

Unix/Linux 中的 全力打造自己的Linux操作系统开发环境


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 129 ::
收藏到网摘: n/a

之前只是少少的使用过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

就可以看见了。