标签 Vundle 下的文章

毋庸置疑,Vim 是一款强大的文本文件处理的通用工具,能够管理系统配置文件和编写代码。通过插件,Vim 可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim 目录中。由于所有的插件文件都被存储在同一个目录下,所以当你安装更多插件时,不同的插件文件之间相互混淆。因而,跟踪和管理它们将是一个恐怖的任务。然而,这正是 Vundle 所能处理的。Vundle,分别是 Vim 和 Bundle 的缩写,它是一款能够管理 Vim 插件的极其实用的工具。

Vundle 为每一个你安装的插件创建一个独立的目录树,并在相应的插件目录中存储附加的配置文件。因此,相互之间没有混淆的文件。简言之,Vundle 允许你安装新的插件、配置已有的插件、更新插件配置、搜索安装的插件和清理不使用的插件。所有的操作都可以在一键交互模式下完成。在这个简易的教程中,让我告诉你如何安装 Vundle,如何在 GNU/Linux 中使用它来管理 Vim 插件。

Vundle 安装

如果你需要 Vundle,那我就当作你的系统中,已将安装好了 Vim。如果没有,请安装 Vim 和 git(以下载 Vundle)。在大部分 GNU/Linux 发行版中的官方仓库中都可以获取到这两个包。比如,在 Debian 系列系统中,你可以使用下面的命令安装这两个包。

sudo apt-get install vim git

下载 Vundle

复制 Vundle 的 GitHub 仓库地址:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

配置 Vundle

创建 ~/.vimrc 文件,以通知 Vim 使用新的插件管理器。安装、更新、配置和移除插件需要这个文件。

vim ~/.vimrc

在此文件顶部,加入如下若干行内容:

set nocompatible " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

被标记为 “required” 的行是 Vundle 的所需配置。其余行仅是一些例子。如果你不想安装那些特定的插件,可以移除它们。完成后,键入 :wq 保存退出。

最后,打开 Vim:

vim

然后键入下列命令安装插件:

:PluginInstall

将会弹出一个新的分窗口,我们加在 .vimrc 文件中的所有插件都会自动安装。

安装完毕之后,键入下列命令,可以删除高速缓存区缓存并关闭窗口:

:bdelete

你也可以在终端上使用下面命令安装插件,而不用打开 Vim:

vim +PluginInstall +qall

使用 fish shell 的朋友,添加下面这行到你的 .vimrc 文件中。

set shell=/bin/bash

使用 Vundle 管理 Vim 插件

添加新的插件

首先,使用下面的命令搜索可以使用的插件:

:PluginSearch

要从 vimscripts 网站刷新本地的列表,请在命令之后添加 !

:PluginSearch!

会弹出一个列出可用插件列表的新分窗口:

你还可以通过直接指定插件名的方式,缩小搜索范围。

:PluginSearch vim

这样将会列出包含关键词 “vim” 的插件。

当然你也可以指定确切的插件名,比如:

:PluginSearch vim-dasm

移动焦点到正确的一行上,按下 i 键来安装插件。现在,被选择的插件将会被安装。

类似的,在你的系统中安装所有想要的插件。一旦安装成功,使用下列命令删除 Vundle 缓存:

:bdelete

现在,插件已经安装完成。为了让插件正确的自动加载,我们需要在 .vimrc 文件中添加安装好的插件名。

这样做:

:e ~/.vimrc

添加这一行:

[...]
Plugin 'vim-dasm'
[...]

用自己的插件名替换 vim-dasm。然后,敲击 ESC,键入 :wq 保存退出。

请注意,所有插件都必须在 .vimrc 文件中追加如下内容。

[...]
filetype plugin indent on

列出已安装的插件

键入下面命令列出所有已安装的插件:

:PluginList

更新插件

键入下列命令更新插件:

:PluginUpdate

键入下列命令重新安装所有插件:

:PluginInstall!

卸载插件

首先,列出所有已安装的插件:

:PluginList

之后将焦点置于正确的一行上,按下 SHITF+d 组合键。

然后编辑你的 .vimrc 文件:

:e ~/.vimrc

删除插件入口。最后,键入 :wq 保存退出。

或者,你可以通过移除插件所在 .vimrc 文件行,并且执行下列命令,卸载插件:

:PluginClean

这个命令将会移除所有不在你的 .vimrc 文件中但是存在于 bundle 目录中的插件。

你应该已经掌握了 Vundle 管理插件的基本方法了。在 Vim 中使用下列命令,查询帮助文档,获取更多细节。

:h vundle

现在我已经把所有内容都告诉你了。很快,我就会出下一篇教程。保持关注!

干杯!

资源

Vundle GitHub 仓库


via: https://www.ostechnix.com/manage-vim-plugins-using-vundle-linux/

作者:SK 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Vim是Linux上一个轻量级的通用文本编辑器。虽然它开始时的学习曲线对于一般的Linux用户来说可能很困难,但比起它的好处,这些付出完全是值得的。vim 可以通过完全可定制的插件来增加越来越多的功能。但是,由于它的功能配置比较难,你需要花一些时间去了解它的插件系统,然后才能够有效地去个性化定置Vim。幸运的是,我们已经有一些工具能够使我们在使用Vim插件时更加轻松。而我日常所使用的就是Vundle。

什么是Vundle

Vundle意即Vim Bundle,是一个vim插件管理器。Vundle能让你很简单地实现插件的安装、升级、搜索或者清除。它还能管理你的运行环境并且在标签方面提供帮助。在本教程中我们将展示如何安装和使用Vundle。

安装Vundle

首先,如果你的Linux系统上没有Git的话,先安装Git

接着,创建一个目录,Vim的插件将会被下载并且安装在这个目录上。默认情况下,这个目录为~/.vim/bundle。

$ mkdir -p ~/.vim/bundle 

现在,使用如下指令安装Vundle。注意Vundle本身也是一个vim插件。因此我们同样把vundle安装到之前创建的目录~/.vim/bundle下。

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

配置Vundle

现在配置你的.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'

" 该Git插件没有放在GitHub上。
Plugin 'git://git.wincent.com/command-t.git'

"本地计算机上的Git仓库路径 (例如,当你在开发你自己的插件时)
Plugin 'file:///home/gmarik/path/to/plugin'

" vim脚本sparkup存放在这个名叫vim的仓库下的一个子目录中。
" 将这个路径正确地设置为runtimepath。
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" 避免与L9发生名字上的冲突
Plugin 'user/L9', {'name': 'newL9'}

"所有的插件都应该在这一行之前。
call vundle#end()            " 必需。

容我简单解释一下上面的设置:默认情况下,Vundle将从github.com或者vim-scripts.org下载和安装vim插件。你也可以改变这个默认行为。

要从github安装插件:

Plugin 'user/plugin'

要从 http://vim-scripts.org/vim/scripts.html 处安装:

Plugin 'plugin_name'

要从另外一个git仓库中安装:

Plugin 'git://git.another_repo.com/plugin'

从本地文件中安装:

Plugin 'file:///home/user/path/to/plugin'

你同样可以定制其它东西,例如你的插件的运行时路径,当你自己在编写一个插件时,或者你只是想从其它目录——而不是~/.vim——中加载插件时,这样做就非常有用。

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

如果你有同名的插件,你可以重命名你的插件,这样它们就不会发生冲突了。

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

使用Vum命令

一旦你用vundle设置好你的插件,你就可以通过几个vundle命令来安装、升级、搜索插件,或者清除没有用的插件。

安装一个新的插件

PluginInstall命令将会安装所有列在你的.vimrc文件中的插件。你也可以通过传递一个插件名给它,来安装某个的特定插件。

:PluginInstall
:PluginInstall <插件名>

清除没有用的插件

如果你有任何没有用到的插件,你可以通过PluginClean命令来删除它。

:PluginClean

查找一个插件

如果你想从提供的插件清单中安装一个插件,搜索功能会很有用。

:PluginSearch <文本>

在搜索的时候,你可以在交互式分割窗口中安装、清除、重新搜索或者重新加载插件清单。安装后的插件不会自动加载生效,要使其加载生效,可以将它们添加进你的.vimrc文件中。

总结

Vim是一个妙不可言的工具。它不单单是一个能够使你的工作更加顺畅高效的默认文本编辑器,同时它还能够摇身一变,成为现存的几乎任何一门编程语言的IDE。

注意,有一些网站能帮你找到适合的vim插件。猛击 http://www.vim-scripts.org, Github或者 http://www.vimawesome.com 获取新的脚本或插件。同时记得使用为你的插件提供的帮助。

和你最爱的编辑器一起嗨起来吧!


via: http://xmodulo.com/manage-vim-plugins.html

作者:Christopher Valerio 译者:XLCYun(袖里藏云) 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

NeoBundle 是一个 Vim 的插件管理器,以 Vundle 为基础(Vundle 是一个基于 Pathogen 的 Vim 插件管理器)。在之前的文章中,我非常不推荐使用 Neobundle,原因是它当时还处于高速开发阶段(LCTT:意味着不稳定、变数大),并且当时它的英文文档很少。现在,已经过了一年多了,这两个问题都早已不再是问题。

我们为什么要使用插件管理器?Vim 支持大量插件,但是由于它没有严格定义框架,插件的文件可以胡乱分布在不同目录下,导致用户管理起来会很困难(LCTT:当然,前提是你有很多插件,还有点小小的强迫症,觉得理一理这些插件心里会舒服点)。而一款插件管理器能让管理变得简单许多。Pathogen, Vundle 和 NeoBundle 的工作就是为不同插件建立一个目录,然后将这些目录扔到 ~/.vim/bundle 目录下。这个文件整理方法可以让你方便彻底地删除插件,使用 'rm -rf <插件目录>' 或直接在文件管理器里面把插件所在的目录删除就可以了,绝对绿色环保无残留。同时,这种方法还能最大程度避免插件与插件之间的不兼容性。

NeoBundle 是一个基于 Vundle 的项目,如同 Vundle,它们都可以安装和升级插件。然而 NeoBundle 的说明文件上明确指出:“NeoBundle 不是一个稳定的插件管理器,如果你想要一个稳定的,请选择 Vundle”。最新的 release-note 上也有警告“可能会造成兼容性问题”——这是一个开发者写的注解,说明这个管理器还不能让人放心使用。

所以,我们为什么要使用 NeoBundle?它都不能保证稳定运行!好吧,它还是有可取之处的。Vundle 只支持 Git 这种版本控制系统,而 NeoBundle 可以支持 SubversionMercurial。另一个原因是如果你不想插件升级时破坏你的 Vim 生态环境,你可以锁住 NeoBundle,让它只使用某个插件的固定版本。

另外,NeoBundle 创建者,Shougo Matsuishita(LCTT:名字看着像日本人),正在将它的命令接口添加到其他插件项目,以便减少他们的命令使用量。现在 NeoBundle 支持3种插件:unite.vim,Vim 使用的文件和缓存管理器;vimshell.vim,Vim 使用的脚本程序;vimproc.vim,运行于 vimshell.vim 中,用于对异步事件的支持。上面说的都是特殊案例,缺少英文文档,所以用户希望有人能完善它们。在正式使用它们之前,我们需要把注意力先集中在一些基本操作上。

安装并初始化 NeoBundle

NeoBundle 支持 Vim 7.2.051 或更高版本,需要 git 和 cURL(用于下载文件)。你可以手动下载 NeoBundle,也可以使用 cURL 下载它在 GitHub 上的库。在你的 home 目录下使用如下命令,可以将 NeoBundle 插件下载到 .vim/bundle/neobundle.vim 目录里,然后 NeoBundle 就能管理它自己了。

curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh

你还需要修改 .vimrc 文件。NeoBundle 的 GitHub 主页提供一个 .vimrc 范本,但是直接使用这个范本,NeoBundle 需要你安装5个可能不需要插件。如果不需要它们,你可以使用下面的最小配置:

if has('vim_starting')
set nocompatible    
set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
filetype plugin indent on

上述配置的作用是:启动 NeoBundle 并且像其他插件一样升级自己。NeoBundle 默认从 GitHub 下载并升级,如果你正好在使用 GitHub,你只需要为这个插件指定维护者的用户名和路径。在上面的配置中,NeoBundleFetch 只需要指定为“Shougo/neobundle.vim”,而不是完整的 GitHub 路径。如果你想使用其他网站,比如是 Subversion 或 Mecurial 的网站,你就需要添加完整的 URL。

如果你想安装其他插件,你可以使用下面的命令:

curl -k https://github.com/[项目维护者]/[插件路径] > ~/.vim/bundle/[插件路径]

举个例子:你想安装 vim-abolish,一个超级 NB 的文本搜索和替换插件,就使用下面的命令:

curl -k https://github.com/tpope/vim-abolish > ~/.vim/bundle/abolish

如果要让它自动升级,在 NeoBundleFetch 那行下面添加一行:

NeoBundle 'tpope/vim-abolish'

再介绍一个小技巧:你可以为插件指定一个分支或版本号。什么意思?NeoBundle 只会使用这个插件的某个分支或版本,而忽略其版本更新。如果你使用的某个插件处于高速开发过程,你就可以使用这个技巧,避免用到有 bug 的插件版本。举个例子:

NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }

还有一个技巧:在 .vimtc 文件内添加一行关于“NeoBundleCheck”的属性。NeoBundle 会根据配置检查没安装的插件,并提示你安装它们。你也可以使用命令“:NeoBundleInstall”(LCTT:这是要在 Vim 编辑器的命令模式下输入)来安装或升级插件。

NeoBundle 用法

很多 NeoBundle 命令用起来和 Vundle 类似,但命令的名字不一样。下面是 NeoBundle 命令的用法:

  • :NeoBundleUpdate:安装或升级插件,如果你手动把一个插件的目录删除了,这个命令会重新安装这个插件。在这个命令后面加上插件名称,就只升级一个插件;不加参数,会将所有己安装但没被记录在案的插件给记录下来。:NeoBundleInstall 命令效果相同。
  • :NeoBundle {REPOSITORY URI} [[REVISION}] [,OPTIONS}]]:将一个插件锁定到固定版本,防止胡乱升级。
  • :NeoBundleList:列出所有未初始化的插件。
  • :NeoBundleClean:进入交互界面,删除插件。

这些命令在配合 unite.vim (LCTT:就是上面举过的32个例子之一)使用时,效果会稍微有些出入。你可以使用“:help neobundle”命令了解更多信息。

是否使用 NeoBundle,自己决定

NeoBundle 是强大的工具,正处于高速开发状态。任何处于这种状态的项目,都会被帖上“有前途”和“不稳定”两个标签,看你自己怎么选。如果你想要最新的稳定版本的插件,NeoBundle 能够把 Vundle 和 Pathogen 甩出几条街。

然而在线帮助文档已经给出警告,它不是个稳定的产品,不及时更新版本可能造成一些插件运行出错。最后,你需要在 .vimrc 文件为你的 Neoundle 和其他插件指定一个稳定的版本。记住这警告,然后你可以在使用这些尖端技术产品时游刃有余。


via: http://www.openlogic.com/wazi/bid/348084/Managing-Vim-extensions-with-NeoBundle

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出