Vim-watchdogs と shellcheck でシェルスクリプトのシンタックスチェック
Vim で bash のコードをたまに書いたりすると,シンタックスチェッカが欲しくなる. vim-watchdogs と shellcheck を使ってかなり快適にできるので,やってみる.
ちなみに shellcheck はnamaristats.com1 経由で知りました.ありがとうございます.
Vim-watchdogs とは
quickrun をバックエンドに多様な言語についてカスタマイズしやすいシンタックスチェックを提供するプラグイン.解説記事は多いのでまあ適当にどうぞ.
shellcheck とは
haskell で書かれた シェルスクリプトの静的解析ツール.よいが,さすがにエラーメッセージが不親切なことがある. もう shell 的なことも haskell で書きたくなってきますね.
インストールは先のレポジトリに行ってビルドするか,
cabal update; cabal install shellcheck
か,Debian 系なら apt
で行けるようです(apt-get install shellcheck
).
では設定
man shellcheck
より
shellcheck [ -f format ] [ -e code ] [ -s shell ] files
OPTIONS
-f format, --format format
Select the format used for printing diagnostics.
Available formats are checkstyle (XML based format), gcc, json and tty (colorful).
gcc
が vim で使うには都合良さそうですね.というわけで必要ツールをインストールして .vimrc
に以下
let g:quickrun_config["watchdogs_checker/shellcheck"] = {"command" : "shellcheck", "cmdopt" : "-f gcc"}
let g:quickrun_config["sh/watchdogs_checker"] = {"type" : "watchdogs_checker/shellcheck"}
こんな感じで行けると思います. あとは
autocmd FileType sh nnoremap <buffer> <Space>q :<C-u>WatchdogsRun<CR>
などで便利に使えばよろしうございます.めでたし.