Vim - 文法チェックを行う方法

JSとかPerlとか、Vimで書いているとシンタックスエラーが出ててもわかりづらい。それを補うようなプラグインだったり設定の紹介。*1

PHP

設定

この二行を .vimrc に追記する

autocmd filetype php :set makeprg=php\ -l\ %
autocmd filetype php :set errorformat=%m\ in\ %f\ on\ line\ %l
使い方

vim で開いているときに

:make

このコマンドを入力すると文法チェックがはしる。

JavaScript

設定
1. JavaScript Lintをダウンロード。
	http://www.javascriptlint.com/
2. “jsl”という名前のファイルを /usr/local/bin/ に配置
3. javaScriptLint.vimをダウンロードする。
	http://www.vim.org/scripts/script.php?script_id=2578
4. javaScriptLint.vim を、「.vim/plugin」に配置
チェック

上でダウンロードしたJavaScript Lintアプリの中に
jsl-test.js
というのがあるので、それをvimで開いて :w してみる。
もし設定がうまくいっていればエラーが表示される。

使い方

JSを編集後に保存するときに、エラーがあると警告される。
無理やり保存したい場合は

:set ft=unko

とかやって、ファイルタイプをjavascript以外にすれば保存できる。

Perl

perl の文法チェックは perl のモジュールを使うので、まずは perl のモジュールのインストールから。
perl のモジュールは CPAN という perl のモジュールを使って管理する。なんか再帰的w

CPAN のインストール

Mac の場合は、Macports をつかってインストールする。すでにインストールされている人は self upgrade とかしておく。Linux とかだったら rpm とか apt とかそのへん使ってインストールする。ここは本質じゃないので詳しくは割愛。

文法チェック用のモジュールをインストール
$cpan Vi::QuickFix
.vimrc の設定
" syntax check for perl
autocmd filetype perl :map <silent><C-c> :cn<CR>
autocmd filetype perl :map <silent><C-l> :cl<CR>
autocmd filetype perl :nnoremap <buffer> <silent> X :w<CR>:!perl -c -MVi::QuickFix % <CR>
autocmd filetype perl :nnoremap <buffer> <silent> E :cf <CR>
使い方

ノーマルモードのときに

  • X で文法チェック
  • E でエラーがあった箇所にジャンプ



*1:HTMLとかCSSはHTML tidyやCSS Validatorとか使うといいらしいけど、HTML5やCSS3には未対応っぽいので今回は導入を諦めた