読者です 読者をやめる 読者になる 読者になる

Vim のブログ

テキストエディター Vim の魅力、使い方のコツを初心者にも分かりやすく伝えていきたいと思います。

Vim のカスタマイズ 〜 NeoBundle でプラグイン管理! 〜

プラグインとは?

Vim の動作は、VimScriptというプログラム言語によって拡張可能です。この VimScript を特定の用途のためにパッケージ化したものをプラグインと呼びます。

インターネット上には、無数の便利なVimプラグインが公開されています。好みのものをインストールして設定するだけで、Vim は何倍、いや何百倍にも便利になります。

プラグインマネージャープラグイン NeoBundle

お使いの Vim にプラグインをインストールする方法はいろいろあるのですが、プラグインを管理するためのプラグインを使うのが手っ取り早くてオススメです。今回は、私が使っている NeoBundle をご紹介します。

git コマンド

NeoBundle を使うためには、 git というコマンドが必要になります。それぞれの OS に対応した git をインストールしておいて下さい。

NeoBundle のインストール

まず、~/.vim/bundleというフォルダを作って、コマンドライン上でそのフォルダに移動して

git clone https://github.com/Shougo/neobundle.vim

というコマンドを実行して下さい。

.vimrc で NeoBundle を読み込む

.vimrcに、下のように追記して下さい。

" NeoBundle がインストールされていない時、
" もしくは、プラグインの初期化に失敗した時の処理
function! s:WithoutBundles()
  colorscheme desert
  " その他の処理
endfunction

" NeoBundle よるプラグインのロードと各プラグインの初期化
function! s:LoadBundles()
  " 読み込むプラグインの指定
  NeoBundle 'Shougo/neobundle.vim'
  NeoBundle 'tpope/vim-surround'
  " ...
  " 読み込んだプラグインの設定
  " ...
endfunction

" NeoBundle がインストールされているなら LoadBundles() を呼び出す
" そうでないなら WithoutBundles() を呼び出す
function! s:InitNeoBundle()
  if isdirectory(expand("~/.vim/bundle/neobundle.vim/"))
    filetype plugin indent off
    if has('vim_starting')
      set runtimepath+=~/.vim/bundle/neobundle.vim/
    endif
    try
      call neobundle#rc(expand('~/.vim/bundle/'))
      call s:LoadBundles()
    catch
      call s:WithoutBundles()
    endtry 
  else
    call s:WithoutBundles()
  endif

  filetype indent plugin on
  syntax on
endfunction

call s:InitNeoBundle()

neobundle.vim で plugin をモダンに管理する に比べると複雑になっていますが、これはプラグインがまだインストールされていない状態で Vim を起動した時にエラーが出ないようにするための分岐が入っているためです。

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

以降、コマンドラインで :NeoBundleInstall を実行すると、関数 s:LoadBundles() の中で NeoBundle コマンドを使って指定したプラグインが自動でインストールされます。インストールされた後に、Vim を再起動するとプラグインが使えるようになっています。

プラグインの追加

その後、プラグイン を追加したくなったときは、 s:LoadBundles() の中で、追加したいプラグインを引数に与えて NeoBundle コマンドを呼び出すようにしてください。

その後、Vim を再起動して、.vimrc を再読み込みし、 :NeoBundleInstall を実行した後、もう一度 Vim を再起動してプラグインを読み込むのを忘れないで下さい。

NeoBundle コマンドの引数に与える文字列

上の .vimrc の例では、

  NeoBundle 'Shougo/neobundle.vim'
  NeoBundle 'tpope/vim-surround'

として2つのプラグインを読み込んでいます。それぞれ、

に対応しています。同じように、追加したいプラグインを github 上に見つけたら、URL からパスを抜き出して、NeoBundle に引数として渡すようにして下さい。

その他の NeoBundle のコマンド

:NeoBundleUpdate でインストール済みのプラグインを最新版に更新できます。

インストールした後、使わなくなって NeoBundle コマンドで読み込み指定しなくなったプラグインがある場合は、:NeoBundleClean を実行すると、削除することが出来ます。

どんなプラグインがあるのかな?

こちらの記事を参考にして下さい。