あんパン

こしあん派

Vim + aleで保存時にperltidyを実行してコードを整形する

aleはこちら。非同期でLinterを実行したり、autofixしたりといった作業をやってくれるいつものやつ。

github.com

$ cpanm Perl::Tidy

して Perl::Tidy をインストールしつつ、aleが入っている状態で .vimrc

let g:ale_fixers = { 'perl': ['perltidy'] }
let g:ale_fix_on_save = 1
let g:ale_perl_perltidy_options = '-pro=.../.perltidyrc'

すると完成します。

によると

A pathname begins with three dots, e.g. ".../.perltidyrc", indicates that the file should be searched for starting in the current directory and working upwards. This makes it easier to have multiple projects each with their own .perltidyrc in their root directories.

とのことで、この指定をしておくとcwdから親のディレクトリに向けて.perltidyrcを探しにいってくれます。これでホームディレクトリの設定に優先してプロジェクト毎の設定を反映してfixできますね。