作者:alan 时间:2013-08-29
用惯了vim的人,都应该知道它的强大,只要你愿意配,它都要能给你实现。俗话说:“工欲善其事, 必先利其器”,我觉得它就能够称得上linux程序员的利器。因此网上相关的文章也是铺天盖地,我的IDE能够搭建也得益于此,不过也有几个关键的因素是自己琢磨的。这个IDE的几个特色是:
1、 打开程序时,自动打开NERDTree文件夹浏览窗口和taglist函数、变量浏览窗口;
2、 从NERDTree可以直接跳转到tag标签页,同时上面两个窗口也自动打开,而且也可以设置相应的快捷键隐藏它们,我设的是f6,f7。中间的文本窗口还是支持sp、vsp命令进行窗口切割。
当然要做到类IDE其它插件也必不可少,比如ctags、cscope,还有一些自动补全的插件,网上有很多文章,这里就不多说。最后提醒下注意红色字体的内容,因为是成功与否的关键因素。
一、『IDE界面』
二、『Taglist安装、使用』
Taglist是vim的一个插件,提供源代码符号的结构化视图。
1、效果图:
2、下载和安装
l 从http://www.vim.org/scripts/script.php?script_id=273下载安装包
l 进入~/.vim目录,将Taglist安装包解压,解压后会在~/.vim目录中生成几个新子目录,如plugin和doc
l 进入~/.vim/doc目录,在Vim下运行"helptags ."命令。此步骤是将doc下的帮助文档加入到Vim的帮助主题中,这样我们就可以通过在Vim中运行“help taglist.txt”查看taglist帮助。
l 打开配置文件~/.vimrc,加入以下几行:
""""""""""""""""""""""""""
"taglist setting
"""""""""""""""""""
"把taglist窗口放在屏幕的右侧,缺省在左侧
let Tlist_Use_Right_Window=1
"关闭vim自动打开taglist,因为NERDTree我设置的是左,所以这个是右,你可以换下试试。
let Tlist_Auto_Open=0
"让当前不被编辑的文件的方法列表自动折叠起来
let Tlist_File_Fold_Auto_Close=1
"给taglist设置快捷键
map <F7> :Tlist<CR>
"当有文件读的时候就打开taglist。这里用的是BufRead事件,如果用WinEnter、BufEnter、BufWinEnter、TagEnter之类的事件都达不到效果,有的很似但会与后面的NERDTreeToggle快捷键产生BUG.autocmd的用法可以参考“VIM REFERENCE MANUAL”
autocmd BufRead * Tlist
到此taglist安装已经完成。
3、基本功能使用方法
在Vim命令行下运行":Tlist"就可以打开Taglist窗口,再次运行":Tlist"则关闭。左右窗口切换Ctrl+ww
在taglist窗口中,可以使用下面的快捷键:
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zoctags常用快捷键ctags常用快捷键
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
三、『NERDTree安装、使用』
1、效果图:
2、下载和安装
l 从官网:http://www.vim.org/scripts/script.php?script_id=1658先下载
l 解压缩之后,把 plugin/NERD_tree.vim和doc/NERD_tree.txt分别拷贝到~/.vim/plugin和 ~/.vim/doc目录。
l 打开配置文件~/.vimrc,加入以下几行:
""""""""""""""""""""""""""""""""
"nerdtree setting
"""""""""""""""""""""""""""""""
let NERDTreeIgnore=['\~$','\.out$','\.o$','\.cmd$','\.pdf$','\.doc$','\.catch$','\.bak$','\.swp','\.ko$','^\.'] "过滤文件
let NERDTreeSortOrder=['\/$','\.S','\.c$','\.cpp$','\.h$','*'] "排序设置
map <F5> :NERDTreeFind<CR>“快捷键设置
map <F6> :NERDTreeToggle<CR>
let NERDTreeShowHidden=1”显示隐藏文件
let NERDTreeShowLineNumbers=1"显示行号
let NERDTreeShowBookmarks=1 "显示书签
let NERDTreeQuitOnOpen=0 "打开文件后不关闭NERDTreeFind窗口
autocmd VimEnter * NERDTreeFind "进入vim时打开 NERDTreeFind窗口
autocmd TabEnter * NERDTreeFind ”打开tab页时打开 NERDTreeFind窗口
3、基本功能使用方法
Ø 切换工作台和目录
Ø ctr+w+h 光标focus左侧树形目录,ctrl+w+l 光标focus右侧文件显示窗口。
Ø ctrl+w+w,光标自动在左右侧窗口切换
Ø o.......在已有窗口中打开文件、目录或书签,并跳到该窗口 .....|NERDTree-o|
Ø go......在已有窗口 中打开文件、目录或书签,但不跳到该窗口 .....|NERDTree-go|
Ø t....... 在新Tab中打开选中文件/书签,并跳到新Tab .....|NERDTree-t|
Ø T.......在新Tab中打开选中文件/书签,但不跳到新Tab .....|NERDTree-T|
Ø i.......split 一个新窗口打开选中文件,并跳到该窗口 .....|NERDTree-i|
Ø gi......split一个新窗口打开选中文件,但不跳到该窗口 .....|NERDTree-gi|
Ø s.......vsp一个新窗口打开选中文件,并跳到该窗口 .....|NERDTree-s|
Ø gs......vsp一个新 窗口打开选中文件,但不跳到该窗口 .....|NERDTree-gs|
Ø !.......执行当前文件 .....|NERDTree-!|
Ø O.......递归打开选中 结点下的所有目录 .....|NERDTree-O|
Ø x.......合拢选中结点的父目录 .....|NERDTree-x|
Ø X.......递归合拢选中结点下的所有目录 .....|NERDTree-X|
Ø e.......Edit the current dif .....|NERDTree-e|
Ø D....... 删除当前书签
Ø P.......跳到根结点
Ø p....... 跳到父结点
Ø K.......跳到当前目录下同级的第一个结点
Ø J.......跳到当前目录下同级的最后一个结点
Ø C.......将选中目录或选中文件的父目录设为根结点
Ø u.......将当前根结点的父目录设为根目录,并变成合拢原根结点
Ø U.......将当前根结点的父目录设为根目录,但保持展开原根结点
Ø r.......递归刷新选中目录
Ø R.......递归刷新根结点
Ø m....... 显示文件系统菜单
Ø cd......将CWD设为选中目录
Ø I....... 切换是否显示隐藏文件
Ø f.......切换是否使用文件过滤器
Ø F.......切换是否显示文件
Ø B.......切换是否显示书签
Ø q.......关闭NerdTree窗口
Ø ?.......切换是否显示Quick Help
Ø 双击......相当于NERDTree-o
Ø 中键......对文件相当于NERDTree-i,对目录相当于NERDTree-e
四、『结尾』
这就是最近发现的好东西,跟需要的人分享一下,希望对您有所帮助。文章中的中快捷键部分由网上拷贝没有完全验证,希望不会对您带来影响。
五、『参考网站』
1. vim中taglist, NerdTree使用http://lullabyus.iteye.com/blog/1439491
2.Vim的NERDTree快捷键,http://hi.baidu.com/moonyjy/item/f9f3a33118ff3d423175a1ef