Vundle插件管理工具
1.1、简介
Vundle(https://github.com/VundleVim/Vundle.vim)的全称是Vim Bundle,它是一款Vim插件管理工具。Vundle让你可以非常轻松地安装、更新、搜索和清理Vim插件。它还能管理你的运行时环境,并帮助标记
1.2、安装
安装Vundle首先需要Git的支持,如果没有GIt请先安装Git。先创建一个目录,将Vim插件下载后将安装到该目录下。默认情况下,该目录位于~/.vim/bundle
$ mkdir -p ~/.vim/bundle
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
1.3、配置
现在设置你的.vimrc文件,如下所示:
set nocompatible " 这是必需的 filetype off " 这是必需的
"你在此设置运行时路径 set rtp+=~/.vim/bundle/Vundle.vim
" vundle初始化 call vundle#begin()
"这应该始终是第一个 Plugin 'gmarik/Vundle.vim'
"该例子来自https://github.com/gmarik/Vundle.vim README Plugin 'tpope/vim-fugitive'
"来自http://vim-scripts.org/vim/scripts.html的插件 Plugin 'L9'
"未托管在GitHub上的Git插件 Plugin 'git://git.wincent.com/command-t.git'
"本地机器上的git软件库(即编写自己的插件时) Plugin 'file:///home/gmarik/path/to/plugin'
" sparkup vim脚本在名为vim的该软件库子目录下。 "传递路径,合理设置运行时路径。 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
"与L9避免名称冲突 Plugin 'user/L9', {'name': 'newL9'}
"每个插件都应该在这一行之前
call vundle#end() " required |
以上红色部分为示例。默认情况下,Vundle从github.com或vim-scripts.org下载并安装Vim插件。你可以修改默认行为。
(1)从Github进行安装:
Plugin 'user/plugin'
(2)从http://vim-scripts.org/vim/scripts.html进行安装:
Plugin 'plugin_name'
(3)从另一个git软件库进行安装:
Plugin 'git://git.another_repo.com/plugin'
(4)从本地文件进行安装:
Plugin 'file:///home/user/path/to/plugin'
(5)你还可以定制其他参数,比如插件的运行时路径,如果你在自行编写插件,或者就想从不是~/.vim的另一个目录来装入它,这非常有用。
Plugin 'rstacruz/sparkup', {'rtp': 'another_vim_path/'}
(6)如果你有同样名称的插件,可以更名插件,那样它就不会冲突。
Plugin 'user/plugin', {'name': 'newPlugin'}
1.4、命令
:BundleList -列举出列表中(.vimrc中)配置的所有插件
:BundleInstall -安装列表中全部插件
:BundleInstall! -更新列表中全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件缓存
:BundleClean -清除列表中没有的插件
:BundleClean! -清除列表中没有的插件
当在配置文件 ~/.vimrc 添加新的插件以后,需要运行以下命令来进行插件安装,安装完成以后就可以用了。
BundleInstall
2、SuperTab插件-Tab键补全
2.1、简介
SuperTab使Tab快捷键具有更快捷的上下文提示功能,也就是一种自动补全插件,我们习惯于IDE的第一个原因就是它的自动补全功能。
2.2、安装
2.2.1使用Vundle安装(推荐)
在~/.vimrc配置文件中添加如下插件配置:
Bundle 'SuperTab'
然后在Vim中运行 :BundleInstall 等待安装完成。
2.2.1使用Git安装
使用Git下载插件supertab。
git https://github.com/ervandew/supertab
如果使用Vundle需要把下载的vim文件放到 ~/.vim/bundle 下面。
如果不使用Vundle需要把下载的vim文件放到 ~/.vim/plugin 下面。
2.2、配置
配置项可选:
在~/.vimrc中添加以下配置
(1)let g:SuperTabRetainCompletionType=2
该参数的说明如下:
0 - 不记录上次的补全方式
1 - 记住上次的补全方式,直到用其他的补全命令改变它
2 - 记住上次的补全方式,直到按ESC退出插入模式为止
(2)let g:SuperTabDefaultCompletionType=""
该参数的说明如下:设置按下后默认的补全方式, 默认是, 现在改为. 关于的补全方式,
还有其他的补全方式, 你可以看看下面的一些帮助:
:help ins-completion
:help compl-omn
3、syntastic插件-语法检查功能
3.1、简介
syntastic是一个代码检查的插件.
3.2、安装
通过Vundle安装它, 在.vimrc中添加:
Bundle "scrooloose/syntastic"
重新打开Vim, 执行:
:BundleInstall
即可完成安装。
3.3、配置
因为Python已经有pylint来检查, 而且syntastic检查Python会在保存时有很长时间的卡顿, 所以禁用它对Python文件的检查
4、NERDTree插件-文件系统浏览功能
4.1、简介
nerdtree树形目录插件能够在vim下浏览文件系统的所有文件,并能够打开文件。同时可以通过配置nerdtree过滤一些文件不被树形结构浏览。
4.2、安装
通过Vundle安装它, 在.vimrc中添加:
Bundle 'scrooloose/nerdtree'
重新打开Vim, 执行:
:BundleInstall
即可完成安装。
4.3、使用
在linux命令行界面,用vim打开文件后,输入:NERDTree ,回车。
进入当前目录的树形界面,通过小键盘"上下"键,能移动选中的目录或文件。目录前面有"+"号,按Enter会展开目录,文件前面是"-"号,按Enter会在右侧窗口展现该文件的内容,并光标的焦点focus右侧。"ctr+w+h"光标focus左侧树形目录,"ctrl+w+l"光标focus右侧文件显示窗口。多次按"ctrl+w",光标自动在左右侧窗口切换。光标focus左侧树形窗口,按"?"弹出NERDTree的帮助,再次按"?"关闭帮助显示。输入":q"回车,关闭光标所在窗口。
NERDTree提供了丰富的键盘操作方式来浏览和打开文件,介绍一些常用的快捷键:
和编辑文件一样,通过h j k l移动光标定位
打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能
i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能
t 在标签页中打开
T 在后台标签页中打开
p 到上层目录
P 到根目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添加、删除、移动操作)
? 帮助
q 关闭
4、ctags插件-代码阅读的工具
4.1、简介
ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。ctags为源码的变量/对象、结构体/类、函数/接口、宏等产生索引文件,以便快速定位。目前支持41种语言,这里仅以C/C++为例:ctags可以产生c/c++语言所有类型的索引文件
4.2、安装
(1)可以直接使用yum命令安装:
sudo yum install ctags
(2)手动安装
下载地址
Official site: http://ctags.sourceforge.net/
VIM online: http://www.vim.org/scripts/script.php?script_id=610
参考步骤(以5.8版本ctags-5.8.tar.gz为例)
解压后
$ cd ctags-5.8
$ ./configure
$ make
# make install
安装结束后,使用ctags命令测试是否成功
或whatis ctags, whereis ctags等
4.3、使用
安装成功后,要为源码文件生成tags文件,才可享受ctags为阅读代码带来的便利。
$ ctags -R --c++-kinds=+px --fields=+iaS --extra=+q ./src ./include /usr/include/ /usr/local/include/
l -R: 循环生成子目录的 tags l *: 当前目录下的所有文件,不递归 l –c++-kinds=+px : 记录 c++ 文件中的函数声明和各种外部和前向声明 l –fields=+iaS : ctags 要求描述的信息,其中i表示如果有继承,则标识出父类;a 表示如果元素是类成员的话,要标明其调用权限(即是 public 还是 private);S 表示如果是函数,则标识函数的 signature。 l –extra=+q: 强制要求ctags做如下操作—如果某个语法元素是类的一个成员,ctags默认会给其记录一行,可以要求ctags对同一个语法元素再记一行,这样可以保证在VIM中多个同名函数可以通过路径不同来区分。 |
递归的为当前目录及子目录下的所有代码文件生成tags文件
在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入:
:set tags=./tags (当前路径下的tags文件)
若要引用多个不同目录的tags文件,可以用逗号隔开,或者,设置 ~/.vimrc,加入一行,则不用手动设置tags路径:
set tags=~/path/tags
移动光标阅读文件,对于不明白的变量或者函数,移动光标到其位置,Ctrl+] 跳转到函数或者变量定义的地方,Ctrl+o返回。