Xeebi

home categories feeds

Vim-watchdogs と shellcheck でシェルスクリプトのシンタックスチェック

Vim で bash のコードをたまに書いたりすると,シンタックスチェッカが欲しくなる. vim-watchdogsshellcheck を使ってかなり快適にできるので,やってみる.

ちなみに 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>

などで便利に使えばよろしうございます.めでたし.