教你用NeoBundle管理Vim插件

教你用NeoBundle管理Vim插件

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 可以支持 Subversion 和 Mercurial。另一个原因是如果你不想插件升级时破坏你的 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 就能管理它自己了。


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

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


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

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

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


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

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


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

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


  1. NeoBundle 'tpope/vim-abolish'

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


  1. 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 和其他插件指定一个稳定的版本。记住这警告,然后你可以在使用这些尖端技术产品时游刃有余。

原文发布时间:2014-07-19

本文来自云栖合作伙伴“linux中国”

时间: 2024-08-30 15:05:18

教你用NeoBundle管理Vim插件的相关文章

使用Vundle管理Vim插件

几种管理插件 Vim 的插件管理工具有蛮多,比如: Vundle vim-addon-manager vpathogen.vim vvundle vvimana 一位同学自己写的 1 2 3 4 5 6 1 2 3 4 5 6 Vim-addon-manager 和 vimana 的对比,参见Vim的插件管理工具 我最会选择了 Vundle,通过子目录管理插件,支持 Git 更新. 我其实不太喜欢子目录,觉得目录太多了看着烦,但是考虑到在没有良好的 PKG 包描述文件的前提下,分子目录是一种简单

如何管理 Vim 插件

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

开发者的实用 Vim 插件(一)

作为 Vi 的升级版,Vim 毫无争议是 Linux 中最受欢迎的命令行编辑器之一.除了是一个多功能编辑器外,世界各地的软件开发者将 Vim 当做 IDE(集成开发环境Integrated Development Environment)来使用. 事实上,因为 Vim 可以通过插件来扩展其自身功能才使得它如此功能强大.不用说,肯定有那么几个 Vim 插件是旨在提高用户的编程体验的. 特别是对于刚刚使用 Vim 或者使用 Vim 做开发的的软件开发者来说,我们将在本教程中讨论一些非常有用的 Vim

开发者的实用Vim插件(一)

作为 Vi 的升级版,Vim 毫无争议是 Linux 中最受欢迎的命令行编辑器之一.除了是一个多功能编辑器外,世界各地的软件开发者将 Vim 当做 IDE(集成开发环境(Integrated Development Environment))来使用. 事实上,因为 Vim 可以通过插件来扩展其自身功能才使得它如此功能强大.不用说,肯定有那么几个 Vim 插件是旨在提高用户的编程体验的. 特别是对于刚刚使用 Vim 或者使用 Vim 做开发的的软件开发者来说,我们将在本教程中讨论一些非常有用的 V

使用Alcatraz来管理Xcode插件

简介 Alcatraz 是一个帮你管理 Xcode 插件.模版以及颜色配置的工具.它可以直接集成到 Xcode 的图形界面中,让你感觉就像在使用 Xcode 自带的功能一样. 安装和删除 使用如下的命令行来安装 Alcatraz: mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins;curl -L http://git.io/lOQWeA | tar xvz -C ~/Library/Applicatio

开发者的实用Vim插件(三)

目前为止,在一系列介绍 vim 插件文章中,我们介绍了使用 Pathogen 插件管理包安装基本的 vim 插件,也提及了另外三个插件:Tagbar.delimitMate 和 Syntastic.现在,在最后一部分,我们将介绍另一个十分有用的插件 a.vim. 请注意所有本篇教程所提及的例子.命令和指导,它们已经在 Ubuntu 16.04 测试完毕,vim 使用版本为 vim7.4 (LCTT 译注:Ubuntu 16.04 的默认版本). A.vim 如果你一直用像 C.C++ 这样的语言

whitespace-关于linux中vim插件的问题.

问题描述 关于linux中vim插件的问题. 本人使用了bronson/vim-trailing-whitespace和nicoraffo/conque两个插件. 一个是标记无效空格,一个是在vim中调出终端. 于是就出现调出终端后会在终端分屏中红色高亮无效空格. 请问如何不在终端中标记无效空格.并且标记无效空格的插件我还非常想用. 在whitespace中有g:extra_whitespace_ignored_filetypes选项. 此选项可以对相应的文件类型忽略.但是我不知道conque调

在Code::Blocks试用与安装vim插件

博主一直都是在Linux下做开发,平时用的编辑器都是VIM.可vim这的痛点是插对C++的补全做不够好.我想要的是当我输入string::时就能提示string下的方法. 无意间博主看到了Code::Blocks,于是安装上来玩玩.结果一玩就根本停不下来. 如下为Code::Blocks的主界面: 它各种鲜明的高亮一下子就征服了博主.主要是对C++的支持相当好.最令博主喜爱的是它的自动调整代码格式的功能,一点就能将整个工程的代码按照指定的格式进行调整. 但是,博主还是有点不习惯.没有vim风格的

vim-Intellij Vim 插件 keyMap如何设置

问题描述 Intellij Vim 插件 keyMap如何设置 10C 都说 Intellij Idea 的 Vim插件 切换后会切换KeyMap 我想知道Vim模式的KeyMap如何设置,在哪设置.一直没找到啊 解决方案 http://ideavim.sourceforge.net/ 解决方案二: file>setting>搜索框键入keymap.