vim常用插件

参考:http://blog.csdn.net/youyudehexie/article/details/7318029

http://www.cnblogs.com/caosiyang/archive/2011/12/23/2299190.html

http://yang3wei.github.io/blog/2013/01/29/nerdtree-kuai-jie-jian-ji-lu/

VIM是VI的升级版,且完全兼容VI指令,GVIM跟VIM的区别是VIM要求全部键盘操作,而GVIM可以使用鼠标进行可视化操作。

Debian操作系统:

1.安装vimsudoapt-getinstallvim

2.为vim配置个人设定

在~\.vim下新建plugin、doc和syntax三个文件夹。

mkdir~/.vim/{plugin,doc,syntax}–p

3.在文件~/目录下创建.vimrc

Plugin放置插件.vim脚本文件

Syntax语言高亮提示设置,能设置某些函数高亮,如c.vim

Doc对应插件的说明文档

注意:通过apt-get安装vim的路径:/usr/share/vim/vim71/下面有doc和plugin等目录/etc/vim/vimrc只要在~/.vim和~/.vimrc建立对应目录配置vim会读取得到的.

.vim默认隐藏,需要ls-all命令

4.Vimrc文件的作用

vimrc利用配置命令行控制vim的显示方式,换行方式和插件工作方式等。

:setbackground=dark

:setbackground=light浅色:

这两个命令必须在":syntaxenable"命令前调用

"使回格键(backspace)正常处理indent,eol,start等

setbackspace=2

"允许backspace和光标键跨越行边界

setwhichwrap+=<,>,h,l

"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)

setmouse=a

setselection=exclusive

setselectmode=mouse,key

"不要生成swap文件,当buffer被丢弃的时候隐藏它

setlocalnoswapfile

setbufhidden=hide

5.安装vim插件

把插件文件放到vim对应的目录后,通过wimrc配置设置后使用。

插件taglist安装包内有两个文件:taglist.vim和taglist.txt,将taglist.vim放到plugin目录下,将taglist.txt放到doc目录下,然后配置vimrc,即可。

安装ExuberantCtags

Redhat和CentOS可以执行yuminstallctags,

Debian和Ubantu可以执行apt-getinstallctags

ctags–R建立tag标签

:settags=/(PWD)/tags设置tags路径

也可以将上面的命令放在~/.vim/vimrc中如果项目常用的话

Ctrl+]跳转到定义处

Ctrl+T调回刚才的位置

Taglist是以tags文件为基础,需要ctags生成tags文件。

地址:http://sourceforge.net/projects/vim-taglist/files/vim-taglist/

unzip-ntaglist_46.zip-d./taglist_46//apt-getinstallunzip

cpdoc/taglist.txt~/.vim/doc

cpplugin/taglist.vim~/.vim/plugin

在命令行输入:Tlist即可打开taglist

NERDTree插件:treeexplorerfornavigatingthefilesystem

类似WinManager插件

wgethttp://www.vim.org/scripts/download_script.php?src_id=17123

下载后将其重命名mvxxxnerdtree.zip

加压后将对应的.vim.txt拷贝到~/.vim对应目录即可

nerdtree_plugin放在~/.vim/nerdtree_plugin

syntax/nerdtree.vim放在~/.vim/syntax/nerdtree.vim

在vim中打开:NERDTree

关闭:NERDTreeClose

常用命令:

o:open打开文件目录书签

go:同o但光标停留在Nerdtree

i:inasplitwindowtoopen

go:同ibutkeepcursor

s:inavsplitwindowtoopen

gs:同sbutkeepcursor

t:打开一个新的标签页

T:同tbutkeepcursor

O:递归展开所选目录

x:closethecurrentnodesparent

X:Recursivelycloseallchildrenofthecurrentnode

r刷新

m打开目录菜单

ctrl+w+h:光标focus左侧树形目录

ctrl+w+l:光标focus右侧树形目录

切换标签页:

gT前一个tab等同:tabp

gt后一个tab等同:tabn

:tabc关闭当前的tab注意在命令行下输入

:tabo关闭所有其他的tab

问题:NERDTree的目录中出现的乱码问题

解决:

编辑NERD_tree.vim,找到这句

calls:initVariable("g:NERDTreeDirArrows",!s:running_windows)

把那个"!"去掉即可解决问题

Cscope插件类似于ctags一样的工具,功能更强大。

安装:http://cscope.sourceforge.net/上下载得到最新的版本源代码

解压tar.gz.configuremakemakeinstall

问题:没有curses.h这个文件或目录。--》sudoapt-getinstalllibncurses5-dev

`flex'ismissingonyoursystem.--》sudoapt-getinstallflex

../ylwrap:行112:yacc:未找到命令--》sudoapt-getinstallbyacc

makeclean重新./configure

启动vim,在命令行输入:csshow。如果显示”nocscopeconnection”,说明已经安装了

cscope–Rbq生成Cscope需要的TAGS

:csadd/home/catdoc/demo/cscope.out/home/catdoc/demo添加cscope数据库

如果常用cscope可将这句加到~/.vimrc中

:csshow显示cscope的链接

:cskillnum:杀掉一个escope链接num取值:csshow,-1表示杀掉所有链接

:csfindc|d|e|f|g|i|s|tname

0或s查找本C符号(可以跳过注释)

1或g查找本定义

2或d查找本函数调用的函数

3或c查找调用本函数的函数

4或t查找本字符串

6或e查找本egrep模式

7或f查找本文件

8或i查找包含本文件的文件

QuickFix插件:程序开发:编辑-编译-编辑,quickfix将编译过程中产生的错误信息保存到文件中,然后vim利用这些信息跳转到源文件的对应位置

:make根据makefile编译

:cw如果有错误列表,则打开quickfix窗口,没有则什么也不做

:copen打开quickfix窗口,可以在后面添加窗口高度参数,如10行::copen10

:cclose关闭quickfix窗口

:col到前一个旧的错误列表

:cnew到后一个较新的错误列表

MiniBufExplorer插件:http://www.vim.org/scripts/script.php?script_id=159

当只编辑一个buffer的时候MiniBufExplorer派不上用场,当打开第二个buffer的时候,MiniBufExplorer窗口就自动弹出来,

当光标置于这个窗口时,按

tab键向前循环切换到每个buffer名上

Enter在打开光标所在的buffer

d删除光标所在的buffer

插件A:在头文件源文件切换

wgethttp://www.vim.org/scripts/download_script.php?src_id=7218-ovim.a

:A切换c/h文件

~/.vim/.vimrc配置一览:

syntaxon"语法高亮

setnumber"显示行号

setautoindent"自动缩进与C语言风格缩进

setcindent

"缩进宽度

settabstop=4

setsofttabstop=4

setshiftwidth=4

setexpandtab"开启expandtab选项,会自动将tab扩展很空格,代码缩进会更美观

"setnoexpandtab

setcino=g0,:0"switchcase对齐风格

"taglist

letTlist_Show_One_File=1"只显示当前文件的tags

letTlist_WinWidth=40"设置taglist宽度

letTlist_Exit_OnlyWindow=1"tagList窗口是最后一个窗口,则退出Vim

letTlist_Use_Right_Window=1"在Vim窗口右侧显示taglist窗口

"nerdtree

"在vim启动的时候默认开启NERDTree(autocmd可以缩写为au)

autocmdVimEnter*NERDTree

"按下F2调出/隐藏NERDTree

map:silent!NERDTreeToggle

"将NERDTree的窗口设置在vim窗口的右侧(默认为左侧)

letNERDTreeWinPos="right"

"当打开NERDTree窗口时,自动显示Bookmarks

letNERDTreeShowBookmarks=1

"cscope快捷键

setcscopequickfix=s-,c-,d-,i-,t-,e-"让vim支持cscope

nmap<C-_>s:csfinds<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>g:csfindg<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>c:csfindc<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>t:csfindt<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>e:csfinde<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>f:csfindf<C-R>=expand("<cfile>")<CR><CR>

nmap<C-_>i:csfindi^<C-R>=expand("<cfile>")<CR>$CR>

nmap<C-_>d:csfindd<C-R>=expand("<cword>")<CR><CR>

查找:逗号+f

nmap<leader>f:!find.-name'*.cpp'-name'*.c'-o-name'*.erl'-o-name'*.py'-o-name'*.lua'-o-name'*.hrl'-o-name'*.app'-o-name'*.hpp'-o-name'*.h'\|xargsgrep-n--color

"minibufexp

letg:miniBufExplMapWindowNavVim=1

letg:miniBufExplMapWindowNavArrows=1

letg:miniBufExplMapCTabSwitchBufs=1

letg:miniBufExplModSelTarget=1

相关推荐