转自:http://os.51cto.com/art/201507/484174.htm

Vim是Linux上一款用途广泛的轻量级文本编辑工具。虽然对普通的Linux用户来说开始学用起来难度相当大,但鉴于它具有的种种好处,完全值得一学。至于功能方面,Vim可以通过插件实现全面定制。不过由于其高级配置,你可能需要在其插件系统上花一番时间,才能够高效地对Vim进行个性化定制。幸好,我们有几个工具可以简化我们使用Vim插件。Vundle就是本人每天使用的一款工具。

1. Vundle简介

Vundle(https://github.com/VundleVim/Vundle.vim)的全称是Vim Bundle,它是一款Vim插件管理工具。Vundle让你可以非常轻松地安装、更新、搜索和清理Vim插件。它还能管理你的运行时环境,并帮助标记。我在本教程中将介绍如何安装和使用Vundle。

2. 安装Vundle

首先,如果你的Linux系统上还没有Git,安装它(http://ask.xmodulo.com/install-git-linux.html)。

下一步,创建一个目录,Vim插件下载后将安装到该目录下。默认情况下,该目录位于~/.vim/bundle。

  1. $ mkdir -p ~/.vim/bundle

现在安装Vundle,如下所示。请注意:Vundle本身是另一种Vim插件。因而,我们将Vundle安装在之前创建的~/.vim/bundle下。

  1. $ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

3. 配置Vundle

现在设置你的.vimrc文件,如下所示:

  1. set nocompatible " 这是必需的
  2. filetype off " 这是必需的
  3.  
  4. " 你在此设置运行时路径
  5. set rtp+=~/.vim/bundle/Vundle.vim
  6.  
  7. " vundle初始化
  8. call vundle#begin()
  9.  
  10. " 这应该始终是第一个
  11. Plugin 'gmarik/Vundle.vim'
  12.  
  13. " 该例子来自https://github.com/gmarik/Vundle.vim README
  14. Plugin 'tpope/vim-fugitive'
  15.  
  16. " 来自http://vim-scripts.org/vim/scripts.html的插件
  17. Plugin 'L9'
  18.  
  19. "未托管在GitHub上的Git插件
  20. Plugin 'git://git.wincent.com/command-t.git'
  21.  
  22. "本地机器上的git软件库(即编写自己的插件时)
  23. Plugin 'file:///home/gmarik/path/to/plugin'
  24.  
  25. " sparkup vim脚本在名为vim的该软件库子目录下。
  26. " 传递路径,合理设置运行时路径。
  27. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
  28.  
  29. " L9避免名称冲突
  30. Plugin 'user/L9', {'name': 'newL9'}
  31.  
  32. "每个插件都应该在这一行之前
  33.  
  34. call vundle#end() " required

不妨稍微解释一下上述配置。默认情况下,Vundle从github.com或vim-scripts.org下载并安装Vim插件。你可以修改默认行为。

3.1.插件安装方式

  • 从Github进行安装:
  1. Plugin 'user/plugin'
  1. Plugin 'plugin_name'
  • 从另一个git软件库进行安装:
  1. Plugin 'git://git.another_repo.com/plugin'
  • 从本地文件进行安装:
  1. Plugin 'file:///home/user/path/to/plugin'

3.2.定制参数

你还可以定制其他参数,比如插件的运行时路径,如果你在自行编写插件,或者就想从不是~/.vim的另一个目录来装入它,这非常有用。

  1. Plugin 'rstacruz/sparkup', {'rtp': 'another_vim_path/'}

如果你有同样名称的插件,可以更名插件,那样它就不会冲突。

  1. Plugin 'user/plugin', {'name': 'newPlugin'}

4.Vundle命令用法

一旦你用Vundle设置好了插件,就可以使用几个Vundle命令,用Vundle来安装、更新、搜索和清理闲置未用的插件。

4.1.安装一个新的插件

PluginInstall命令会安装在你的.vimrc文件中列出来的所有插件。你还可以只安装某一个特定的插件,只要传递其名称。

  1. :PluginInstall
  2. :PluginInstall <plugin-name>

4.2.清理闲置未用的插件

如果你有任何闲置未用的插件,只要使用PluginClean命令,就可以清理它。

  1. :PluginClean

4.3.搜索插件

如果你想从所提供的插件列表安装一个插件,搜索功能就很有用。

  1. :PluginSearch <text-list>

在搜索过程中,你可以在交互式分屏上安装、清理、研究或重新装入同一列表。安装插件不会自动装入你的插件。想自动装入插件,将插件添加到你的.vimrc文件。

这个功能也经常用,比如:PluginSearch taglist,完成搜索后,可以按下'i'进行安装

5.结束语

Vim是一款非常出色的工具。它不仅是一款出色的默认文本编辑工具,可以让你的工作流程更快速更流畅,还可以转换成IDE(集成开发环境),支持几乎任何一种现有的编程语言。Vundle对于快速轻松地对功能强大的Vim环境实现个性化大有帮助。

问题:

1. 中间出现过问题call vundle#begin()和call vundle#end()配对时,始终.vimrc不起作用,后来换成call vundle#rc()和filetpe plugin indent on二者,把插件添加到中间即可。

2. 很多插件都需要设置.vimrc,如快捷键和路径等等,如下是简单地的一个.vimrc

  1. "vim configuration
  2. set modelines=
  3. "设置更好的删除
  4. set backspace=
  5. syntax on "语法高亮
  6. "用浅色高亮当前行
  7. autocmd InsertLeave * se nocul
  8. autocmd InsertEnter * se cul
  9. set smartindent "智能对齐
  10. set autoindent "自动对齐
  11. set confirm "在处理未保存或只读文件的时候,弹出确认框
  12. set tabstop= "tab键的宽度
  13. set softtabstop=
  14. set shiftwidth= "统一缩进为4
  15. set expandtab "不要用空格替代制表符
  16. set number "显示行号
  17. set history= "历史纪录数
  18. set hlsearch
  19. set incsearch "搜素高亮,搜索逐渐高亮
  20. set gdefault "行内替换
  21. set encoding=utf-
  22. set fileencodings=utf-,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-,big5,euc-jp,latin1 "编码设置
  23. colorscheme molokai
  24. set guifont=Menlo:h16:cANSI "设置字体
  25. set langmenu=zn_CN.UTF-
  26. set helplang=cn "语言设置
  27. set ruler "在编辑过程中,在右下角显示光标位置的状态行
  28. set laststatus= "总是显示状态行
  29. set showcmd "在状态行显示目前所执行的命令,未完成的指令片段也会显示出来
  30. set scrolloff= "光标移动到buffer的顶部和底部时保持3行的距离
  31. set showmatch "高亮显示对应的括号
  32. set matchtime= "对应括号高亮时间(单位是十分之一秒)
  33. set autowrite "在切换buffer时自动保存当前文件
  34. set wildmenu "增强模式中的命令行自动完成操作
  35. set linespace= "字符间插入的像素行数目
  36. set whichwrap=b,s,<,>,[,] "开启normal 或visual模式下的backspace键空格键,左右方向键,insert或replace模式下的左方向键,右方向键的跳行功能
  37. filetype plugin indent on "分为三部分命令:file on,file plugin on,file indent on 分别是自动识别文件类型, 用用文件类型脚本,使用缩进定义文件
  38. set foldenable "允许折叠
  39. set cursorline "突出显示当前行
  40. set magic "设置魔术?神马东东
  41. set ignorecase "搜索忽略大小写
  42. filetype on "打开文件类型检测功能
  43. set background=dark
  44. set t_Co= "256
  45. set mouse=a "允许鼠标
  46. set nocompatible " 这是必需的
  47. filetype off " 这是必需的
  48.  
  49. " NERDTree------------------------------------------------------
  50. let NERDTreeQuitOnOpen= " Nerdtree is quit, when file is opened
  51. let NERDTreeShowBookmarks= " Display bootmark
  52. " let NERDTreeChDirMode=2 " Root is default directory
  53.  
  54. " let mapleader = ","
  55. map <F4> :NERDTreeToggle<CR>
  56. map <C-F4> :NERDTreeFind<CR>
  57.  
  58. " Taglist------------------------------------------------------
  59. let Tlist_Ctags_Cmd='ctags'
  60. let Tlist_Show_One_File=
  61. let Tlist_WinWidth=
  62. let Tlist_Exit_OnlyWindow=
  63. let Tlist_Use_Left_Window=
  64.  
  65. " Cscope------------------------------------------------------
  66. if has("cscope")
  67. set csprg=/usr/bin/cscope
  68. set csto=
  69. set cst
  70. set nocsverb
  71. " add any database
  72. if filereadable("cscope.out")
  73. cs add cscope.out
  74. " else add pointed
  75. elseif $CSCOPE_DB!=""
  76. cs add $CSCOPE_DB
  77. endif
  78. set csverb
  79. endif
  80. " shortcuts
  81. nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
  82. nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
  83. nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
  84. nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
  85. nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
  86. nmap <C-@>f :cs find f <C-R>=expand("<cword>")<CR><CR>
  87. nmap <C-@>i :cs find i <C-R>=expand("<cword>")<CR><CR>
  88. nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>
  89. " Vundle--------------------------------------------------------
  90. set rtp+=~/.vim/bundle/Vundle.vim
  91.  
  92. call vundle#rc()
  93.  
  94. Plugin 'gmarik/Vundle.vim'
  95.  
  96. Plugin 'tpope/vim-surround'
  97. Plugin 'bling/vim-airline'
  98. Plugin 'scrooloose/nerdtree'
  99. Plugin 'taglist.vim'
  100. Plugin 'cscope.vim'
  101. filetype plugin indent on " required

[vundle]利用vundle工具来管理vim插件的更多相关文章

  1. 用Vundle管理Vim插件

    作为程序员,一个好用的Vim,是极其重要的,而插件能够使原本功能羸弱的Vim变得像其他功能强大的IDE一样好用.然而下载.配置插件的过程比较繁琐,大家往往需要自己进行下载/配置等操作,如果还涉及到更新 ...

  2. 使用pathogen管理Vim插件并托管到Github

    参照文章[1][2]的办法,将vim打造成一个Python开发环境.文章中使用的是 pathogen + git 来管理 Vim 插件的.对这种方式还不太明白的同学可以参考[3]中的介绍.pathog ...

  3. 使用Vundle管理Vim插件

    附:仓库地址 附:我自用的vim配置文件,里面注释很多,仅供参考. Vundle是一款Vim的插件管理软件(Linux),用起来很方便的原因有几点: 支持插件超多,可以来源于github.Vundle ...

  4. 菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle

    定义 Vundle是vim bunler和简称,它是一个vim插件管理器. Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便.gmarik受到Ruby的bunler的启发,开发了 ...

  5. 常用vim插件的安装、使用和管理

      1.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或者其他工具用来快速查找定位源代码中的符号,入变量名,函数名等.比如,tags文件就是Taglist和 ...

  6. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  7. 跟我一起学习VIM - vim插件合集

    2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104)  目录(?)[+]  前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...

  8. vim插件cscope使用方法

    一.安装cscope 安装方式比较多样,可以在各自linux软件管理工具中安装,也可以去官网下载安装. sudo apt-get install cscope 二.插件安装 这里选择的是Vundle来 ...

  9. vim插件和配置

    vim插件和配置 插件 pathogen 可以方便地管理vim插件 在没有pathogen的情况下,vim插件的文件全部都放在.vim目录,卸载插件很麻烦,pathogen可以将不同的插件放在一个单独 ...

随机推荐

  1. 【云计算】OpenStack qcow2镜像如何转化为Docker镜像?

    Import qcow2 image to docker hub 参考资料: https://forums.docker.com/t/import-qcow2-image-to-docker-hub/ ...

  2. office excel2013如何启用solver选项

    Excel要启用solver很多地方说是要单独安装插件,我认为不同版本可能操作不同.此时office2013已经足够强大,可以通过下面的方法来启用solver 1:在office2013 Excel中 ...

  3. [Grunt] grunt.template

    /** * Created by Answer1215 on 11/15/2014. */ module.exports = function(grunt){ grunt.initConfig({ f ...

  4. #define 与 typedef

    1.#define:预编译指令,在预编译的时候,进行文本替换. 2.typedef:编译时处理,为类型取一个别名. 3.#define与typedef的顺序是相反的,记住typedef就行了.type ...

  5. 利用 Android 系统原生 API 实现分享功能

    利用 Android 系统原生 API 实现分享功能 这篇文章提供一个封装好的 Share2 库供大家参考. GitHub 项目地址:Share2 大家知道,要调用 Android 系统内建的分享功能 ...

  6. 【转】IT新人如何快速成长

    主动积极 主动积极包括很多方面了,主动学习.主动思考.主动承担责任等等.我觉得主动性很重要,如果你能做到这一点,那么肯定会把工作做的很好的. 学会学习 公司不是学校,需要改变由老师灌输知识的学习方式. ...

  7. Matlab interpgui

    function interpgui(arg1,arg2) %INTERPGUI Behavior of interpolating functions. % Demonstrates interpo ...

  8. 有关WINDOWS XP登录密码的几种方法

    网上关于破解WINDOWS XP登录密码的几种方法很多,但许多根本不行.我现在总结自己试过几种,这几种方法其实均比较菜的,但可行的.WINDOWS XP登录是由SAM 文件管理的,总体来说“山姆大叔” ...

  9. [转发]在Visual Studio 2010/2012/2013/2015上使用C#开发Android/IOS安装包和操作步骤

    官方学习文档:http://developer.xamarin.com/guides/android/getting_started/ 官方学习例子:http://developer.xamarin. ...

  10. JavaWeb 调用接口

      JavaWeb 如何调用接口 CreateTime--2018年4月2日19:04:29 Author:Marydon 1.所需jar包 2.代码设计 WebUtils.java import j ...