菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle
定义
Vundle是vim bunler和简称,它是一个vim插件管理器。
Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便。gmarik受到Ruby的bunler的启发,开发了vundle这个vim插件,可以将插件分到不同的目录管理。
Vundle基于Git架构,每一个插件都是一个项目的Repository,通过Vundle可以用简单的指令,管理插件的生命周期。这样,只要有一份.vimrc,到哪都可以使用原有的vim插件了。当然基本前提是:系统已经要有git。
安装
具体怎么安装,有很多文章,所以这里不细讲了,有兴趣可以参见 官方文档
大体的步骤:
- 确定系统有git。如果没有,先提前安装git
- 通过git clone vundle
- 添加.vimrc文件vundle相关的配置
然后就可以通过vundle相关命令来管理vim插件的生命周期
插件类型
这里指的是vundle定义的类型,并不代表的是vim自然类型。vim自然类型暂时不深入,如果有兴趣可以参见常用插件
Github
说明:引入Github的插件
语法:用户/仓库 => 相当于:https://github.com/用户/仓库
Plugin 'gmarik/Vundle.vim' =>'https://github.com/gmarik/Vundle.vim'
Vim scripts
说明:引入'https://github.com/vim-scripts'下面的插件
语法:单词(不带"/"的) => 相当于:https://github.com/vim-scripts/单词
Plugin 'ctrlp.vim' => 'https://github.com/vim-scripts/ctrlp.vim'
非Github
说明:这里需要的是全路径,引用的是非Github的插件
Plugin 'git://git.wincent.com/command-t.git'
这种类型暂时没使用过
本地
说明:这里需要的是全路径,引用的是本地的插件
Plugin 'file:///path/from/root/to/plugin'
这种类型暂时没使用过
生命周期
这里指的是管理vim插件的生命周期。我比较喜欢用“生命周期”这个词。因为这样,脑子里能很方便的记忆着这一系列的命令以及场景。
语法如下:
:BundleList 列举列表(也就是.vimrc和已经安装的插件)中配置的所有插件
:BundleInstall 安装列表中的全部插件
:BundleInstall! 更新列表中的全部插件
:BundleSearch 查找foo插件
:BundleSearch! 刷新foo插件缓存
:BundleClean 清除列表中没有的插件
:BundleClean! 清除列表中没有的插件
注意事项:
- 后面的所有命令都可以加上[name1 name2 ...]参数。如果有加,就指的是针对管理这些指定插件的生命周期。所以不在一一赘述
- 在输入命令时,可以使用Tab键|Ctrl+d来提示
列举
语法:PluginList
列举插件列表,这里面包括两类:
- .vimrc文件里配置的插件
- 已经安装,但是没有在.vimrc文件里体现的插件。比如直接通过PluginInstall {name}直接安装,如果已经安装成功,虽然.vimrc文件里没有,但是依然会在PluginList里显示
注意事项: - 要把PluginList的所有插件同步到.vimrc配置文件。这样下一次就可以直接安装了。
安装
语法:PluginInstall
安装BundleList里的所有插件
注意事项:
- PluginInstall后面如果加"!",此时表示的是更新而不是安装,相当于下面的PluginUpdate
更新
语法:PluginUpdate
更新BundleList里的所有插件
查找
语法: PluginSearch
这里查询的是Vim scripts类型插件。其他插件都不在可搜索范围
这里的搜索,支持前后模糊,但是不支持正则
查找到后可以直接对插件进行生命周期的管理。
但是如果此时安装的插件,并不会在.vimrc配置文件里面,所以要同步BundleList列表到.vimrc
清除
语法: PluginClean
清除没有用的插件
PS
过时命令
下面两类命令现在都可以使用,不过建议使用pluginXxxx系列。
过时命令 | 新命令
Bundle | Plugin
BundleInstall(!) | PluginInstall(!), VundleInstall(!)
BundleUpdate | PluginUpdate, VundleUpdate
BundleSearch(!) | PluginSearch(!), VundleSearch(!)
BundleClean | PluginClean(!), VundleClean(!)
BundleList | PluginList
有效位置
可以通过.vimrc文件里设置需要添加的插件,但是这些插件的位置需要注意一下。
"所有需要添加的插件都必须放在这行之后
call vundle#begin()
"...其他设置
Plugin 'VundleVim/Vundle.vim'
"...其他设置
"所有需要添加的插件都必须放在这行之前
call vundle#end()
参考资源
菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle的更多相关文章
- 菜鸟vimer成长记——第2.0章、模式初探
首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式 ...
- 菜鸟vimer成长记——第2.4章、cmd-line模式
cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和S ...
- 菜鸟vimer成长记——第2.1章、normal模式
目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个 ...
- 菜鸟vimer成长记——第4.1章、通用插件
简介 关于插件的分类,此系列只会简单的区分为通用插件和编程插件.通用插件的意思是,不基于任何编程语言都可以使用的插件.编程插件,是针对于编程习惯,或者说是针对于某种语言的插件. 计划中,是先把基本常用 ...
- 菜鸟vimer成长记——第2.3章、insert模式
大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概 ...
- 菜鸟vimer成长记——第2.2章、visual模式
vi是没有可视模式的.然而大多数编辑软件都都是有可视模式.所以我猜测vim是几乎迫于无奈才有了visual模式. 个人建议,能不用就不用.这样能直接在头脑里处理好文本,锻炼文本处理能力,同时能转变过来 ...
- 菜鸟vimer成长记——第4.2章、编程插件
简介 这部分的插件是与编程相关的插件.主要涉及两大块:所有编程语言通用的插件,以及各个语言独有的插件.插件的数量和合理性,这可能是一个不断累积和修正的过程. 个人感觉,现在比较适合sh,html,ma ...
- 菜鸟vimer成长记——目录
菜鸟vimer成长记——第0章.我眼中的vim学习 菜鸟vimer成长记——第1章.统一概念 菜鸟vimer成长记——第2.0章.模式初探 菜鸟vimer成长记——第2.1章.normal模式 菜鸟v ...
- 菜鸟vimer成长记——第0章、我眼中的vim学习
这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系 ...
随机推荐
- 铁乐学Python_day09_函数
今天我们来学习函数. 产生的原由,若没有函数,会显得重复代码多,可读性差,也会造成重复造轮子的情景. 故产生了函数,用来封装好一个功能,它是以功能为导向的. 1.[函数的样式] 例如自己定义一个函数: ...
- EclEmma安装与使用
安装 EclEmma 插件的过程和大部分 Eclipse 插件相同,我们既可以通过 Eclipse 标准的 Update 机制来远程安装 EclEmma 插件(图 1),也可以从站点(参阅参考资源)下 ...
- python第十九课——random模块中的常用函数
1.random():返回一个[0,1)的随机浮点数(双精度浮点数) 2.uniform(a,b): 返回[a,b]之间的一个随机浮点数(双精度浮点数) [注意]a和b接受的数据大小随意 例如:3.r ...
- cocos2d-x3.0 柱图
画柱图就是多画几个矩形之后放在一起,这个实现了基本功能还不够完好假设要用到项目中须要自己改动. 原文地址:http://blog.csdn.net/qqmcy/article/details/2598 ...
- 一劳永逸部署项目:通过tomcat加载环境变量
一劳永逸部署项目:通过tomcat加载环境变量 转载自:https://blog.csdn.net/u010414666/article/details/46499953 一.说明 项目中经常会用到x ...
- 1834. [ZJOI2010]网络扩容【费用流】
Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1.在不扩容的情况下,1到N的最大流: 2.将1到N的最大流增加K所需 ...
- P3623 [APIO2008]免费道路
3624: [Apio2008]免费道路 Time Limit: 2 Sec Memory Limit: 128 MBSec Special Judge Submit: 2143 Solved: 88 ...
- django操作多数据库
django操作多数据库 1. 添加数据库路由分配文件 在项目文件夹里创建‘database_router’文件.将下面的代码复制到该文件里. from django.conf import s ...
- HBase学习之路 (十)HBase表的设计原则
建表高级属性 下面几个 shell 命令在 hbase 操作中可以起到很大的作用,且主要体现在建表的过程中,看 下面几个 create 属性 1. BLOOMFILTER 默认是 NONE 是否使用布 ...
- kubenetes master使用curl 操作API
前提条件: 已经使用kubeadm 安装集群 查看 kebelet.conf 配置内容 kubectl --kubeconfig /etc/kubernetes/kubelet.conf config ...