Vimの設定をNeoBundle中心にした

MacVimの環境をしばらくぶりにリニューアルしました。 VundleからShougoさんのNeoBundleに変えて。 pathogen > Vundle > NeoBundle とプラグイン管理を変えてきました。 ある意味、正常な人です僕は。

NeoBundle

これを入れなくては始まりません。

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

GitHubサイトのREADME.mdの通りに設定します。

  • ~/.vim/bundle ディレクトリにNeoBundleをクローンします。
  • サンプルの .vimrc をみて、.vimrc に設定をします。
  • インストールするプラグインの指定以外はほとんどまるまるコピペでいけます。

VimProc / Unite

重要なプラグインが二つをあります。それはVimProcとUniteです。 NeoBundleを入れたので、.vimrc に

NeoBundle "Shougo/vimproc"
NeoBundle "Shougo/unite.vim"

と書いて、

:NeoBundleInstall

ってするだけです。ただ、VimProcを使うためにはmakeが必要です。

$ cd ~/.vim/bundle/vimproc
$ make -f make_mak.mak

2つ目は環境に合わせて実行するMakeファイルを変えます。

プラグイン

ほかのプラグイン

Shougo/vimproc
Shougo/vimfiler
Shougo/vimshell
Shougo/unite.vim
Shougo/neocomplcache
NeoBundle "Shougo/neosnippet"
pangloss/vim-javascript
sudo.vim
scrooloose/nerdtree
vim-scripts/surround.vim
thinca/vim-ref
peterhost/vim-markdown-preview
majutsushi/tagbar
sjl/gundo.vim
vim-scripts/VimRepress
Raimondi/javaScriptLint.vim

JSer用の設定

まず、次のプラグインを入れます。

pangloss/vim-javascript

これを入れたら、syntaxとかindentとか全部やってくれるのでとても便利ですし、 賢いです。JSerならまずこれを入れましょう。 それから、文法チェックをするために、次のプラグインも入れましょう。

Raimondi/javaScriptLint.vim

このプラグインを入れると、保存時にjslを使って、JavaScriptの文法チェックをしてくれます。 実行には別途jslが必要なので、 http://www.javascriptlint.com から、jslを入手してパスの通ったところに配置します。

ただ、少々warningがうるさすぎる嫌いがありますので、 チェックする内容をカスタマイズしたいと思うでしょう。 そんな場合は、jslint_comman_options で起動オプションを設定できます。

" javaScriptLintの動作オプションの設定
" 最初の -conf ~/bin/jsl.conf がキモ。これでjslの警告レベルを細かく調整できる
let jslint_command_options = '-conf ~/bin/jsl.conf -nofilelisting -nocontext -nosummary -nologo -process'

このなかで、-conf オプションで、jsl.conf というファイルを指定していますが、 jslのオプションを書いたファイルになります。 このファイルに細かな実行オプションを書けばいいということです。 一から書くのは面倒くさいので、

$ jsl help:conf > jsl.conf

でひな形を作成してそれを編集します。

JSDoc形式のコメントを入れるスクリプトは自作しました。gistに公開しています。

このコードを、.vim/ftplugin/javascript.vim に追加します。

その他細かいの

" ヤンクの時にクリップボードにもセットする
set clipboard+=unnamed

これ便利です。Vimでyyでヤングして、他のアプリに⌘ + Vで貼り付けできます。 よそで、⌘ + Cでコピーしたものをpで貼り付けもできます。

" %で 対応するhtmlタグに飛べるようにする
runtime macros/matchit.vim

%を使って閉じタグに飛べます。

"カーソルを表示行で移動する。物理行移動は<C-n>,<C-p>
nnoremap j gj
nnoremap k gk
nnoremap <Down> gj
nnoremap <Up>   gk

Vimでの j k は論理行単位でカーソル移動しますが、それを物理行単位にします。

Unite

Unite便利すぎる。これから活用しよう。 まずは、一部オプションの変更

" Unite 設定
"let g:unite_enable_split_vertically = 1
"let g:unite_winwidth = 40
let g:unite_split_rule = "rightbelow"

unite_enable_split_verticallyを1にすると、Uniteのウィンドウを縦に分割して表示します。 でも、横の方が使いやすいのでやめました。 unite_split_rule のデフォルトはtopleftですが、これを変更しました。 僕にはこちらの方が使いやすいです。

" Unite で yunk history
let g:unite_source_history_yank_enable =1  "history/yankの有効化
nnoremap <silent> ,p :<C-u>Unite history/yank<CR>
" Uniteのバッファ一覧機能
nnoremap <silent> ,b :<C-u>Unite buffer<CR>
" Uniteのレジスター覧機能
nnoremap <silent> ,r :<C-u>Unite register<CR>
" Uniteの最近使ったファイル一覧機能
nnoremap <silent> ,f :<C-u>Unite file_mru<CR>

ということでヤンクの履歴からペーストする機能を始め、いくつかのキーマップをしました。 Uniteは他にもいろいろ便利そうなので、Uniteがらみのキーマップ多くなりそうです。