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.安装 vim    sudo apt-get install vim
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的显示方式,换行方式和插件工作方式等。

:set background=dark
:set background=light 浅色:
这两个命令必须在 ":syntax enable" 命令前调用

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

" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l

" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide


5.安装vim插件
把插件文件放到vim对应的目录后,通过wimrc配置设置后使用。
插件taglist安装包内有两个文件: taglist.vim 和 taglist.txt,将taglist.vim放到plugin目录下,将taglist.txt放到doc目录下,然后配置vimrc,即可。

安装 Exuberant Ctags
Redhat和CentOS可以执行yum install ctags,
Debian和Ubantu可以执行apt-get install ctags

ctags –R 建立tag标签
:set tags=/(PWD)/tags 设置tags路径
也可以将上面的命令放在~/.vim/vimrc中如果项目常用的话

Ctrl + ] 跳转到定义处
Ctrl + T 调回刚才的位置

Taglist是以tags文件为基础,需要ctags生成tags文件。
地址:http://sourceforge.net/projects/vim-taglist/files/vim-taglist/
unzip -n taglist_46.zip -d ./taglist_46  // apt-get install unzip
cp  doc/taglist.txt  ~/.vim/doc
cp  plugin/taglist.vim ~/.vim/plugin

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


NERDTree插件: tree explorer for navigating the filesystem
  类似 WinManager插件
wget http://www.vim.org/scripts/download_script.php?src_id=17123
下载后将其重命名 mv xxx nerdtree.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 : in a split window to open
go : 同i but keep cursor
s :in a vsplit window to open
gs :同s but keep cursor

t : 打开一个新的标签页
T :同t but keep cursor

O : 递归展开所选目录
x :close the current nodes parent
X :Recursively close all children of the current node

r 刷新
m 打开目录菜单

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

切换标签页:
gT  前一个tab 等同 :tabp
gt  后一个tab 等同 :tabn
:tabc  关闭当前的tab   注意在命令行下输入
:tabo  关闭所有其他的tab

问题: NERDTree的目录中出现的乱码问题
解决:
   编辑NERD_tree.vim,找到这句
   call s:initVariable("g:NERDTreeDirArrows", !s:running_windows)
   把那个"!"去掉即可解决问题


Cscope 插件  类似于ctags一样的工具,功能更强大。
安装: http://cscope.sourceforge.net/上下载得到最新的版本源代码
解压tar.gz .configure make makeinstall

问题:没有curses.h这个文件或目录。 --》 sudo apt-get install libncurses5-dev
`flex' is missing on your system.  --》 sudo apt-get install flex
../ylwrap: 行 112: yacc: 未找到命令 -- 》 sudo apt-get install byacc
make clean 重新 ./configure

启动vim,在命令行输入:cs show。如果显示”no cscope connection”,说明已经安装了

cscope –Rbq 生成Cscope需要的TAGS
:cs add /home/catdoc/demo/cscope.out /home/catdoc/demo 添加cscope数据库
如果常用cscope 可将这句加到~/.vimrc 中

:cs show 显示cscope的链接
:cs kill num : 杀掉一个escope链接 num取值:cs show, -1表示杀掉所有链接
:cs find c|d|e|f|g|i|s|t name
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行: :copen 10
: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:在头文件 源文件切换
wget http://www.vim.org/scripts/download_script.php?src_id=7218 -o vim.a

:A 切换c/h文件


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

syntax on "语法高亮
set number  "显示行号
set autoindent "自动缩进与C语言风格缩进
set cindent

"缩进宽度
set tabstop=4
set softtabstop=4
set shiftwidth=4

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

set cino=g0,:0  "switch case 对齐风格

" taglist
let Tlist_Show_One_File=1    "只显示当前文件的tags
let Tlist_WinWidth=40        "设置taglist宽度
let Tlist_Exit_OnlyWindow=1  "tagList窗口是最后一个窗口,则退出Vim
let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口

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

" 按下 F2 调出/隐藏 NERDTree
map  :silent! NERDTreeToggle

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

" 当打开 NERDTree 窗口时,自动显示 Bookmarks
let NERDTreeShowBookmarks=1

" cscope 快捷键
set cscopequickfix=s-,c-,d-,i-,t-,e-  "让vim支持 cscope

nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>   
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR> 
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR> 
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR> 
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR> 
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR> 
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$CR> 
nmap <C-_>d :cs find d <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' \| xargs grep -n --color


" minibufexp
  let g:miniBufExplMapWindowNavVim = 1
  let g:miniBufExplMapWindowNavArrows = 1
  let g:miniBufExplMapCTabSwitchBufs = 1
  let g:miniBufExplModSelTarget = 1

你可能感兴趣的:(vim)