您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试管理 > 配置管理 > 正文

使用Vundle管理配置Vim基本插件

发表于:2017-01-09 作者:JasonDing 来源:

  Vundle
  项目托管在github上https://github.com/gmarik/vundle
  其特色在于使用git来管理插件,更新方便,支持搜索,一键更新,从此只需要一个vimrc走天下。
  在vimrc文件中添加如下内容来启用vundle管理vim插件的功能:
  set rtp+=$VIM/vimfiles/bundle/vundle/
  call vundle#rc('$VIM/vimfiles/bundle/')
  Bundle 'gmarik/vundle'
  如果是linux系统,可以如下添加:
  set rtp+=~/.vim/bundle/vundle/
  call vundle#rc()
  Bundle 'gmarik/vundle'
  Vundle命令
  :BundleList -列举出列表中(.vimrc中)配置的所有插件
  :BundleInstall -安装列表中全部插件
  :BundleInstall! -更新列表中全部插件
  :BundleSearch foo -查找foo插件
  :BundleSearch! foo -刷新foo插件缓存
  :BundleClean -清除列表中没有的插件
  :BundleClean! -清除列表中没有的插件
  常用插件的安装和使用
  ctags和taglist

  taglist是一个用于显示定位程序中各种符号的插件,例如宏定义、变量名、结构名、函数名这些东西 我们将其称之为符号(symbols),而在taglist中将其称之为tag。显然,要想将程序文件中的tag显示出来,需要事先了解全部tag的信 息,并将其保存在一个文件中,然后去解析对应的tag文件。taglist做的仅仅是将tag文件中的内容解析完后显示在Vim上而已。tag扫描以及数 据文件的生成则是由ctags(Exuberant Ctags)这一工具完成的,所以在使用taglist之前,你的电脑需要装有ctags。
  vimrc配置信息:
  Bundle 'taglist.vim'
  let Tlist_Ctags_Cmd='ctags'
  let Tlist_Show_One_File=1               "不同时显示多个文件的tag,只显示当前文件的
  let Tlist_WinWidt =28                    "设置taglist的宽度
  let Tlist_Exit_OnlyWindow=1             "如果taglist窗口是最后一个窗口,则退出vim
  "let Tlist_Use_Right_Window=1            "在右侧窗口中显示taglist窗口
  let Tlist_Use_Left_Windo =1                "在左侧窗口中显示taglist窗口
  跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
  o 在一个新打开的窗口中显示光标下tag
  显示光标下tag的原型定义
  u 更新taglist窗口中的tag
  s 更改排序方式,在按名字排序和按出现顺序排序间切换
  x taglist窗口放大和缩小,方便查看较长的tag
  打开一个折叠,同zo
  将tag折叠起来,同zc
  打开所有的折叠,同zR
  = 将所有tag折叠起来,同zM
  [[ 跳到前一个文件
  ]] 跳到后一个文件
  q 关闭taglist窗口
  Tagbar
  tagbar是一个taglist的替代品,比taglist更适合c++使用,函数能够按类区分,支持按类折叠显示等,显示结果清晰简洁。
  由于taglist在使用过程中对中文支持不好,当文件夹是中文的时候,没法生成taglist,于是这里我使用tagbar,它可以很好的解决中文的问题。
  https://github.com/majutsushi/tagbar

  关于tagbar的配置:
  Bundle 'majutsushi/tagbar'
  "nmap tb :TagbarToggle        "快捷键设置
  let g:tagbar_ctags_bin='ctags'            "ctags程序的路径
  let g:tagbar_width=30                    "窗口宽度的设置
  map :Tagbar
  "autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()     "如果是c语言的程序的话,tagbar自动开启
  更多的配置请参看:help tagbar
  配置好之后可以使用:Tagbar或者按配置的快捷键F3开启。
  NERDTree
  NERDTree是一个用于浏览文件系统的树形资源管理外挂,它可以让你像使用Windows档案总管一样在VIM中浏览文件系统并且打开文件或目录。
  https://github.com/scrooloose/nerdtree
  vimrc配置信息:
  Bundle 'scrooloose/nerdtree'
  let NERDTreeWinPos='right'
  let NERDTreeWinSize=30
  map :NERDTreeToggle
  配置之后可以使用:NERDTree或者配置的快捷键F2开启。
  MiniBufExplorer
  MiniBufExplorer提供多文件同时编辑功能,并在编辑器上方显示文件的标签。
  https://github.com/fholgado/minibufexpl.vim
  vimrc配置信息:
  Bundle 'fholgado/minibufexpl.vim'
  let g:miniBufExplMapWindowNavVim = 1
  let g:miniBufExplMapWindowNavArrows = 1
  let g:miniBufExplMapCTabSwitchBufs = 1
  let g:miniBufExplModSelTarget = 1
  let g:miniBufExplMoreThanOne=0
  map :MBEbp
  map :MBEbn
  这里配置了F11和F12键来进行前后buffer的跳转,比较方便。如果要关闭某个buffer的话,可以使用命令:MBEbd [num],如果只是输入:MBEbd是关闭当前buffer,如果后面跟有buffer的数字标号,则关闭指定的buffer。
  这里还想说一些BufExplorer这个插件,这个插件和MiniBufExplorer的功能差不多,网上也有一些讨论他们之间的优缺点,但是我将BufExplorer和WinManager一起使用的时候总是会有些问题,导致一些错误和冲突,于是还是决定使用简单的MiniBufExplorer。

  vim-airline
  vim-airline其实是powerline的copy,它相比powerline有几个好处:它是纯vim script,powerline则用到python;它简单,速度比powerline快。
  这是一款状态栏增强插件,可以让你的Vim状态栏非常的美观,同时包括了buffer显示条扩展smart tab line以及集成了一些插件。
  https://github.com/bling/vim-airline

  vimrc配置信息:
  Bundle 'bling/vim-airline'
  set laststatus=2
  WinManager(弃用)
  这个WinManager已经好久没有更新了,原先的版本有很多小bug,使用起来非常不爽,在网上找了一些改进的方法,感觉总是不尽人意,最终决定启用。
  这里只是给出在使用的时候查找的一些信息。
  vimrc配置信息:
  Bundle 'vim-scripts/winmanager'
  let g:NERDTree_title="[NERDTree]"
  let g:winManagerWindowLayout="NERDTree|BufExplorer"
  function! NERDTree_Start()
  exec 'NERDTree'
  endfunction
  function! NERDTree_IsValid()
  return 1
  endfunction
  nmap wm :WMToggle
  这个版本的Winmanager好像有个小bug,你在打开Winmanager界面时,会同时打开一个空的文件。这会影响后续使用,所以我们要在打开Winmanager时关掉这个空文件。winmanager.vim文件中找到ToggleWindowsManager函数定义并在修改为如下内容:
  function! ToggleWindowsManager()
  if IsWinManagerVisible()
  call s:CloseWindowsManager()
  else
  call s:StartWindowsManager()
  exe 'q'
  end
  endfunction
  现在的效果

  解决Windows下vim显示中文乱码问题
  由于在windows下默认是gb编码,而vim默认是utf-8,所以打开会成乱码。修改了一下配置文件,使vim支持gb编码就好了。
  修改一下vimrc配置文件:
  let &termencoding=&encoding
  set fileencodings=utf-8,gbk
  vim编码涉及的基本概念
  encoding变量:该选项使用于缓冲的文本(你正在编辑的文件)、寄存器、Vim脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
  encoding变量的默认值与系统当前locale相同。
  fileencoding变量:该选项是vim写入文件时采用的编码类型。
  vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
  termencoding变量:该选项代表输出到客户终端(Term)采用的编码类型。
  默认空值,也就是输出到终端不进行编码转换。
  补充:使用pathogen来管理vim插件
  pathogen让每个插件占有一个单独的目录,解决了文件分散的问题。安装完pathogen之后,只需要在~/.vim/目录下新建一个目录~/.vim/bundle/,并将要安装的所有插件放在~/.vim/bundle/目录下即可以使用。如果要删除某个插件,只需要将~/.vim/bundle/目录下对应的插件目录删除即可。如果想保持某个插件为最新版本,直接从插件的仓库checkout一份代码到bundle目录即可。
  安装并启用pathogen
  pathogen的下载地址为:https://github.com/tpope/vim-pathogen
  下载后可以直接解压。pathogen插件只有一个单独的脚本,所谓安装就是把它放在当前用户的 ~/.vim/autoload 目录下即可。
  即,将解压后的autoload目录连同里面的pathogen.vim插件拷贝到~/.vim/目录下。
  要启用pathogen,还需要在~/.vimrc 文件里, filetype plugin indent on 之前的任何地方,加入下面这句:
  call pathogen#infect()
  安装插件
  要安装新插件,只需要下载该插件,并将其放到~/.vim/bundle/目录下即可。
  假设要下载安装NERDTree插件,只需要进入到~/.vim/bundle/目录,然后执行以下命令:
  git clone http://github.com/scrooloose/nerdtree.git
  下载完成后,会看到~/.vim/bundle/目录下会多出一个新的目录:nerdtree。NERDTree插件已经安装完成了!可以看到这种方式比传统的vim插件安装方式简单多了!
  而要卸载该插件也非常简单,只需要在~/.vim/bundle/目录下删除nerdtree目录即可,干净利落!
  要更新该插件到最新版本,只需要进入到该目录~/.vim/bundle/nerdtree/,并执行以下命令:
  git pull origin
  小结
  虽然使用pathogen这种方法也可以很好的管理vim插件,相比于vundle,它们都是使用git环境来下载插件的,但是vundle感觉更加自动化,可以直接使用命令就能进行插件的更新和管理。