Vimのファイルタイプ自動検出に設定を追加する
Vimは.vimrcにfiletype on
と記述するとファイルを開くときにファイルタイプを検出して自動的に設定してくれます。この機能はかなり優秀で、ほとんどの場合は目当てのファイルタイプを設定してくれるのですが、ごく希に正しく設定されない場合があります。このような場合、自動検出の設定を追加することで対処できます。
ファイルタイプ検出の流れ
Vimのファイルタイプ判定は、$RUNTIME/filetype.vim
で行われています。ここには大量の判定が記述されていますが、最後にruntime! ftdetect/*.vim
という記述があります。すなわち、~/.vim/ftdetect
(Windowsでは%HOME%\vimfiles\ftdetect
) に拡張子が.vimのファイルを用意しておけば、デフォルトの判定結果に上書きして設定することができます。
設定の記述
拡張子.vimなので、中身はもちろんVimscriptです。以下の例は拡張子が.hppのファイルをC++の設定で開く記述です。通常、autocmd (au) ではグループを指定する必要がありますが、$RUNTIME/filetype.vim
側でaugroupによってグループが指定されているため、ftdetect以下のファイルではグループの指定は必要ありません。
記述例は前述の$RUNTIME/filetype.vim
に大量にあるので、そちらを参考にするといいと思います。