gjslint

http://d.hatena.ne.jp/Craftworks/20100908/1283941430
Vim からこのようなツールを利用する場合にはコンパイラプラグインを書くとより便利.


以下のプラグインはかなり手抜きだけど,まぁ最低限の機能は提供できていると思う.

if exists("current_compiler")
  finish
endif
let current_compiler = "gjslint"

if exists(":CompilerSet") != 2
  command -nargs=* CompilerSet setlocal <args>
endif

CompilerSet makeprg=gjslint\ %
CompilerSet errorformat=
      \%+P-----\ FILE\ \ :\ \ %f\ -----,
      \Line\ %l\\,\ %t:%n:\ %m,
      \%+Q%r

これを ~/.vim/compiler/gjslint.vim に保存.


利用するときは,まず javascript のソースを開いているバッファで :compiler gjslint として compiler を gjslint にセットする.
めんどくさい場合は ~/.vim/ftplugin/javascript.vim

compiler gjslint

と書いておくと,javascript のソースを開いたときに自動的にこれが実行される.
そして :make で gjslint の結果が quickfix ウィンドウに出力される.
元のエントリと同じように↑キーに割り当てたい場合は ~/.vim/ftplugin/javascript.vim

nnoremap <buffer> <Up> :<C-u>make<CR>

とでも書けばいい.
quickfix ウィンドウは :copen で開くことができる.
make した後に :copen するのがめんどくさい場合は vimrc に

autocmd QuickfixCmdPost make copen

と書いておくと,make した後に自動的に開ける.
閉じるときは :cclose.


quickfix の詳しい説明は省く*1が,だいたいこんなかんじに表示されて,quickfix 上で を押すと該当行に移動できたり, で新しいウィンドウで該当行を開けたり,ソースを開いているバッファ上で :cnext や :cprev 等のコマンドで次/前のエラーメッセージが出ている行に移動できたりして便利.

*1::help quickfix あたりを見て下さい