NeoBundle

提供: neovim/vim入門
2016年3月12日 (土) 20:07時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

NeoBundleとは、vimのプラグイン管理(プラグインマネージャ)のプラグインです。NeoBundleは、Vundleをベースにしています。Vundleとは違うコマンド名になっています。もし、今からプラグインマネージャーを使うのであれば、Vundleではなく、NeoBundleを使うべきです。vimのプラグインのインストールやアップデートを簡単に行えます。非同期実行のサポート、unite.vimの対応、リビジョン指定など、大幅に機能が強化されています。NeoBundleの開発は終了したため、VimとNeoVimのプラグインマネージャDein.vim を利用しましょう。

読み方

NeoBundle
ねお ばんどる

概要

NeoBundleは、プラグインマネージャの1つです。プラグインマネージャは、乱立しているため、いろいろなプラグインマネージャが存在しています。プラグインマネージャを導入することで、プラグインのインストールや更新が非常に簡単になります。

NeoBundleは、Vundleをベースにしています。 vimprocを使用することで、非同期にインストール/アップデートができます。

vimをプラグインで拡張することで、vimを統合開発環境(IDE)のように仕立てることもできます。詳しくは、vimのPHP開発環境などを御覧ください。

NeoBundle を利用する前に

NeoBundle を使い始めようとしている方は、VimとNeoVimのプラグインマネージャDein.vim を利用しましょう。NeoBundle の開発は終了しました。

vundleとNeoBundleの違い

vundleとの違いとNeoBundleの特徴です。

  • コマンド名が変更されている
    • BundleInstall -> NeoBundleInstall
    • コマンド名に Neo というプレフィックスが追加されています。
  • NeoBundleは、vimproc に対応しているため非同期に実行できます。
  • NeoBundleは、unite.vim に対応しています
  • NeoBundleは、リビジョンが指定できます。

注意

このドキュメントで出てくる foobarhoge/foo.vim, foobarhoge/bar.vim は、架空のプラグインです。

vimスクリプト

vimスクリプトは、github.comやwww.vim.orgで公開されています。

必要なもの

gitコマンドが必要です。

FreeBSD

% sudo pkg install git

Ubuntu

% sudo apt-get install git-core

Windows

Git for Windowsをインストールします。 http://git-scm.com/downloads からダウンロードできます。

インストール時のオプション設定は、以下の通りです。

  • Adjusting your PATH environment は Use Git Bash only を選択しました。
  • Run Git and included Unix Tools from the Windows Command Prompt は、find.exe, sort.exe とかを上書きするとか書いてあったので、やめておきました。
  • Configuring the line ending conversions は Checkout Windows-style, commit Unix-style line endings を選択しました。

セットアップ

NeoBundle自体は、一度、手動でローカルにダウンロードする必要があります。gitコマンドで簡単に取り寄せられます。

% mkdir ~/.vim/bundle
% git clone https://github.com/Shougo/neobundle.vim \
~/.vim/bundle/neobundle.vim

vundleからの移行

vundle をもし使用していたなら、vundleとプラグインを一度、削除してしまいましょう。

% rm -rf $HOME/.vim/bundle
% rm -rf $HOME/.vim/vundle.git

また、.vimrc から bundle に関連する設定を消しましょう。 .vimrc の Bundle は NeoBundle に変更します。

$HOME/.vimrc

set nocompatible
filetype off            " for NeoBundle
 
if has('vim_starting')
        set rtp+=$HOME/.vim/bundle/neobundle.vim/
endif
call neobundle#begin(expand('~/.vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
 
" ここから NeoBundle でプラグインを設定します
 
" NeoBundle で管理するプラグインを追加します。
NeoBundle 'Shougo/neocomplcache.git'
NeoBundle 'Shougo/unite.vim.git'
 
filetype plugin indent on       " restore filetype

:NeoBundleコマンドの引数

github, vim.org のプラグインのアドレスは、省略できます。

NeoBundle 'git://github.com/foobarhoge/foo.vim'
フルパス
NeoBundle 'foobarhoge/foo.vim'
省略表記, github.comのリポジトリを意味します
NeoBundle 'hoge'
プラグイン名のみの場合は、vim.orgのプラグインを表します。

NeoBundle の使い方

基本的に .vimrc に NeoBundle 'foo.vim' の行を追加し、vimから :NeoBundleInstall してプラグインをインストールし、 NeoBundleUpdate でプラグインを更新できます。

詳しい説明は、以下をお読みください。

プラグインのインストール

プラグインを追加する場合には、以下の手順で行います。

  • .vimrcにプラグインの設定を追加します。これは、例ですが、github.comで公開されている foobarhoge/foo.vim(実在しません)のプラグインを追加する場合は、
    NeoBundle 'foobarhoge/foo.vim'
    と設定します。
  • vimを起動します。
  • NeoBundleInstallを実行します。
    :NeoBundleInstall
  • vimを終了し、vimを起動します。
  • インストール(追加)したプラグインがロードされた状態になります。

Windowsの場合は、git bashを起動し、bash上からvimを起動します。

以上です。

プラグインのアップデート

プラグインをアップデートする場合には、以下の手順で行います。

  • vim を起動します。
  • NeoBundleUpdateを実行します。
    :NeoBundleUpdate
  • vimを終了し、vimを起動します。

NeoBundleUpdate の代わりに NeoBundleInstall! でもアップデートできます。

Windowsの場合は、git bashを起動し、bash上からvimを起動します。

以上です。

プラグインの削除

  • .vimrcから NeoBundle の行を削除します。
  • vimを起動します。
  •  :NeoBundleClean を実行します。
  • vimを終了し、vimを起動します。

プラグインの遅延ロード

NeoBundleは、「遅延ロード」ができます。 プラグインを大量にロードするには、時間がかかり、vimの起動が遅くなります。 遅延ロードでは、必要になったタイミングでロードできます。

filetype が mediawiki のときに、 mediawiki.vim をロードする例です。

NeoBundleLazy 'mediawiki.vim',  {
	\ "autoload" : { "filetypes" : [ "mediawiki" ] } }

OSごとのロード

これは、NeoBundleなどプラグインマネージャは関係はありません。 OSによって、使用するプラグイン、使用しないプラグインがあります。 Windowsでsudo.vimを使っていないので、以下の様な設定になっています。

if has("win32") || has("win64")
	" 設定
	NeoBundleLazy 'mediawiki.vim',  
		\ { "autoload" : { "filetypes" : [ "mediawiki" ] } }
endif
 
if has("unix") || has("mac")
	NeoBundle 'vim-scripts/gtags.vim', 
		\ { "autoload" : { "filetypes" : [ "c", "cpp" ] } }
	NeoBundle 'vim-scripts/sudo.vim'
endif

リビジョンのロック

引数にリビジョン番号やブランチ名を指定することで、特定のリビジョン、ブランチが使用できます。

NeoBundle 'foobarhoge/foo.vim', 'ver.1.50'
NeoBundle 'foobarhoge/bar.vim', {'rev':'3333e3'}

ローカルのディレクトリからの読み込み NeoBundleLocal

NeoBundleLocal ~/.vim/bundle

依存関係の定義

プラグインごとに依存関係が定義できます。依存関係にあるプラグインもインストール、アップデートされます。

NeoBundle 'foobarhoge/foo.vim', 
	\ { 'depends': 'foobarhoge/bar.vim' }

非同期アップデート

NeoBundleは、vimprocを自動認識します。vimprocがインストールされている場合、非同期でインストールとアップデートができます。

NeoBundle 'Shougo/vimproc', {
      \ 'build' : {
      \     'windows' : 'make -f make_mingw32.mak',
      \     'cygwin' : 'make -f make_cygwin.mak',
      \     'mac' : 'make -f make_mac.mak',
      \     'unix' : 'gmake -f make_unix.mak',
      \    },
      \ }

プラグイン検索

unite.vim上でプラグインが検索できます。

  •  :Unite neobundle/search

エラー

[neobundle] neobundle#rc() is deprecated function.

NeoBundleをアップデートしたら、以下のエラーが出るようになりました。

[neobundle] neobundle#rc() is deprecated function.
[neobundle] It will be removed in the next version.
[neobundle] Please use neobundle#begin()/neobundle#end() instead.

.vimrcの以下の行を修正します。

call neobundle#rc(expand('~/.vim/bundle'))

修正後の設定は、以下の通りです。

call neobundle#begin(expand('~/.vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()

[neobundle] `NeoBundle` commands must be executed within a neobundle#begin/end block.

NeoBundleをアップデートしたら、以下のエラーが出るようになりました。

[neobundle] `NeoBundle` commands must be executed within a neobundle#begin/end block.  Please check your usage.
call neobundle#end()

.vimrc の変更前は、このように書いていました。

call neobundle#begin(expand('~/.vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
NeoBundle '...'
NeoBundle '...'

begin/end ブロックが悪いようなので、以下のように修正しました。これで問題は、修正されました。

call neobundle#begin(expand('~/.vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle '...'
NeoBundle '...'
call neobundle#end()

関連項目




スポンサーリンク