monoの開発ブログ

Vim でファイルタイプ検出の結果を上書きする

デフォルトまたはプラグインのファイルタイプ検出の結果が気に入らない場合、.vim/after/ftdetect にファイルを置いてやることでファイルタイプ検出の結果に上書きできます。

例えば、以下のような内容で .vim/after/ftdetect/perl.vim を作成しておけば、拡張子が .t であるファイルをすべて Perl のコードとして扱えます。

autocmd BufNewFile,BufRead *.t setlocal filetype=perl

ポイントは、setfiletype (setf) ではなく setlocal filetype= を使うことです。というのも、setffiletype が2度設定されて別の設定や構文ファイルが読み込まれることがないようにしているために、after で設定を上書きしようとしても気を遣ってくれるために上書きされないのです。

ヘルプを読みましょうという話ではありますが、結構ハマりました。