neobundle.vimの設定晒す

何回かneobundle.vimの記事書きました。
個人的にはインストール前(後?)とかにhookがあれば便利かなーとか妄想してますが、とりあえず現状で十分な気もするので最後に自分はこう設定してますよー的なことを書こうと思います。


vimrcから重要な点だけ抜粋します。

let $VIM_HOME =expand('~/.vim')
let $VIM_BUNDLE_PATH =expand($VIM_HOME.'/bundle')
let $VIM_NEOBUNDLE_PATH =expand($VIM_BUNDLE_PATH.'/neobundle.vim')

if has('vim_starting')
  if isdirectory($VIM_NEOBUNDLE_PATH)
    execute 'set runtimepath^='.$VIM_NEOBUNDLE_PATH
  else
    " install neobundle.vim {{{
    if executable('git')
      fu! s:nb_install()
        if confirm('|・ω・`)? :'.$VIM_NEOBUNDLE_PATH, "&yes\n&no", 1) == 1
          let nb_repo = 'git://github.com/Shougo/neobundle.vim'
          call system('git clone '.nb_repo.' '.shellescape($VIM_NEOBUNDLE_PATH))
          if !v:shell_error
            filetype off
            execute 'set runtimepath^='.$VIM_NEOBUNDLE_PATH
            filetype plugin indent on
            source $MYVIMRC
          else
            echomsg 'git failed.'
          end
        end
        augroup NBInstall
          autocmd!
        augroup END
      endf
      augroup NBInstall
        autocmd!
        autocmd VimEnter * call s:nb_install()
      augroup END
    end
    "}}}
  end
end

try
  call neobundle#rc($VIM_BUNDLE_PATH)
  NeoBundleFetch 'Shougo/neobundle.vim'
  command! MyNeoBundleCount echomsg len(neobundle#config#get_neobundles())
catch /E117/
  echomsg 'neobundle is not available'
endtry

if exists('*neobundle#rc') " && 0
  NeoBundle...
  以降プラグイン毎に設定
end
filetype plugin indent on


neobundle.vimがなければgit cloneすればいいじゃない。
自分の環境だとconfirm()を起動時にやるとショートカットキーでgvimを起動できなかったのでVimEnterまで遅らせてますが、大丈夫だったらそのままやったほうがいいかも。


あとはneobundle.vimがinstallされていない場合も考えてneobundle#rcを呼ぶときはE117をキャッチしとけば安全だと思います。
neobundle#rcが呼ばれてればexistsで1が返ってくるのでちゃんとインストールされているとみなしてNeoBundle(Lazy|Fetch)で色々登録してます。


MyNeoBundleCountは登録されているバンドルの数が知りたい時用。


ほんとはvimrcをgithubで管理してそっち晒した方が手っ取り早いんですが、いまいちこうビビっとこないのでまだやりません。


もっと簡潔に書ける気もしますがvim力低いんでしゃーない。