vim で perl -c を通らない変更は保存しないようにする方法 + 小ネタ

Emacs 使ってる人に dis られた挙句、涙目で散々調べまわって苦労したのでメモ。

まずは次のものをインストール

cpanm Vi::QuickFix
perl_synwrite.vim - checks Perl syntax before allowing file write : vim online

.vim/ftplugin/perl_synwrite.vim

この二つを真(1)に書き換える

let s:default_perl_synwrite_qf = 1
let s:default_perl_synwrite_au = 1

.vimrc に追記

これは各自お好きなように。

" quickfix
map <silent><C-c> :cn<CR>
map <silent><C-l> :cl<CR>

vim 再起動して

use strict;
use warnings;
use 5.12.1;
say $foo;

を :w で書き込もうとすると

Global symbol "$foo" requires explicit package name at - line 7.
- had compilation errors.

shell returned 255

Press ENTER or type command to continue

と出て保存できない。yatta.

小ネタ - モジュールのバージョンを表示する

ちょっと前に盛り上がったような気もするけれども、そんな凝ったことはしないで bashrc に pmver を書いておくだけでいいかなぁ

function pmver () { perl -M$1 -le "print \$$1::VERSION"; }