原文地址:http://blog.sina.com.cn/s/blog_7745fc86010147h6.html
在整理这篇文章的时候又发现一个好文章:http://blog.csdn.net/bokee/article/details/6633193
首先我们安装vim编辑器,可以选用直接
sudo apt-get install vim-gtk
安装完成后,我们再来安装插件ctags,该插件主要是用来tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags",
是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢?
如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep?
那会搜出很多不相干的地方. 现在流行用是的<C-]>, 谁用谁知道呀, 当光标在某个函数或变量上时, 按下"Ctrl+]",
光标会自动跳转到其定义处, 够厉害吧, 你不用再羡慕Visual Studio的程序员了, 开始羡慕我吧~_~.
两种方法安装,第一种:
sudo apt-get install exuberant-ctags
输入:ctags --version
Exuberant Ctags 5.7, Copyright (C) 1996-2007 Darren Hiebert
Compiled: Mar 12 2008, 08:23:02
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
显示以上信息,安装成功
第二种:
在这个网站: http://ctags.sourceforge.net, 下载一个类似 ctags-5.8.tar.gz 的文件下来:
用下面的命令解压安装:
$ tar -xzvf ctags-5.8.tar.gz
$ cd ctags-5.8
$ ./configure
$ make
$ sudo make install
安装完毕。
然后就开始使用ctags仅需记住下面几条命令:(很简单吧,呵呵)
1. $ ctags –R * ($ 为Linux系统Shell提示符)
2. $ vi –t tag (请把tag替换为您欲查找的变量或函数名)
3. :ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)
4. :tp (tp 助记字:tags preview)---此命令不常用,可以不用记
5. :tn (tn 助记字:tags next) ---此命令不常用,可以不用记
6. :ta x 跳转到符号x的定义处,如果有多个符号,直接跳转到第一处
7. :tj x 可以看做上面3/6两个命令的合并,如果只找到一个符号定义,那么直接跳转到符号定义处,如果有多个,则让用户自行选择。
8. Ctrl + ]
9. Ctrl +T
对于第一条而言,我们在代码的目录下打开终端,或者用cd切换到该终端下,然后输入$ctags -R,我们可以看到此时产生了一个tags文件,然后我们使用第二条命令比如输入$vim -t main 它表示我们用vim打开该目录下的main函数,接下来应该就能在终端看到main函数了,如果想要寻找某一个函数,或者变量,的定义,我们可以直接将光标移至该处,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回
。
接下来我们来看看怎么在ubuntu下手动设置vim,下面介绍一种常用的方法
首先我们可以在自己的主文件夹下,建立一个.vimrc文件,该文件是默认隐藏的,所以我们要用Chrl+H组合键来显示它,然后就是在里面设置自己的vim一些配置用法,如果说你也跟我一样暂时只是vim看代码方便,那么我建议你设置一些基本的功能:用gedit .vimrc打开然后输入:
set syntax=on
"配色方案
colorscheme torte
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候,弹出确认
set confirm"
自动缩进
set autoindent
set cindent
" 自动换行
set wrap
" 整词换行
set linebreak
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"语言设置
set helplang=cn
set encoding=utf8
set langmenu=zh_CN.UTF-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
" 设置字体。
set guifont=Liberation\Mono\ 12
"set guifont=Fixedsys\Excelsior\3.01\ 14
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
let Tlist_Auto_open = 1 "如果你想在启动VIM后,自动打开taglist窗口
然后保存。
接下来就是安装taglist插件,注意taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
到http://vim.sourceforge.net/scripts/download_script.php?src_id=6416该地址下去找到taglist的安装包
然后解压,这里其实可以鼠标右键,看到有个命令选项,直接解压到此处,点击就行了,而不用装B的去采用命令
# unzip -d taglist taglist_42.zip
# cd taglist
来解压。
之后我们输入命令:
cp doc/taglist.txt /usr/share/vim/vim73/doc/
cp plugin/taglist.vim /usr/share/vim/vim73/plugin/
每个人的vim版本不同,所以你的可能是别的版本vim**,不一定是73。
这样就完成了在源代码处
jason@ubuntu:~/lidar/3530/working-copy$ vim 3dMapping_thread.cpp
打开源文件,然后输入TlistOpen在右边出现tag栏,右边的窗口就是前面介绍的TagList窗口, 其中列出了main.c文件中的tag, 并且按照"typedef", "variable", "function"等进行了分类. 将光标移到VimMain上, 如图中左边红色的方框, 按下回车后, 源程序会自动跳转到VimMain的定义处, 如图中右边的红色方框. 这就是TagList最基本也是最常用的操作. 再教你一个常用的操作, 你在浏览TagList窗口时, 如果还不想让源码跳转, 但是想看看tag在源码中完整的表达,
可以将光标移到你想要看的tag上, 如图中上边黄色的方框, 然后按下空格键, 在下面的命令栏中, 如图下边黄色的方框, 会显示该tag在源码中完整的写法, 而不会跳转到源码处.
输入:q退出taglist,
输入:TlistOpen在源代码和tag之间切换。
taglist 安装和使用可参考这个网站:http://blog.csdn.net/duguteng/article/details/7414592
接下来安装WinManage插件显示目录
到http://www.vim.org/scripts/script.php?script_id=95下载插件,然后解压,
然后:
sudo cp winmanager.txt /usr/share/vim/vim73/doc/
sudo cp winfileexplorer.vim /usr/share/vim/vim73/plugin/
sudo cp winmanager.vim /usr/share/vim/vim73/plugin/
sudo cp wintagexplorer.vim /usr/share/vim/vim73/plugin/
然后在.vimrc中输入:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
搞定。
接下来试试效果:
jason@ubuntu:~$ vim 3dMapping_thread.cpp
然后正常模式按下wm,会看到左边显示两个窗口,目录和taglist。在按下wm就消失了,每次都是按entel键打开相应的函数或者目录。
:TlistOpen和:q之间切换。
onmicppcompete参考:
http://blog.csdn.net/duguteng/article/details/7417181
还有几篇好的文章:
http://www.360doc.com/content/10/0928/13/3564483_57033907.shtml