vimが自動認識するファイルタイプを自分で設定する

自動ファイルタイプ検出

vimでは起動時(厳密にはバッファに展開時)に自動でファイルの拡張子に対応したファイルタイプを選んでくれる機能がついている これを有効化するには、.vimrcに

filetype on

と記述すればよい

だが、一般的なファイルタイプについては自動で設定が反映されるものの、少し外れると設定が無かったりする
そんなときは自分で、

:set filetype=hoge

や、その短縮形である

setf hoge

などとして都度読み込む必要がある
これは非常にめんどくさい

解決策

vimは起動時にfiletype.vimというファイルを読み込むことでこの自動検出を行っている
僕のMacでは/usr/share/vim/vim73/filetype.vimに存在しているが、この中を見ると以下の行がある

runtime! ftdetect/*.vim

この行はftdetect以下の*.vimを全部読み込むぜ!と言っているらしい!すばらしい
というわけで~/.vim/ftdetectというディレクトリを作って、その中に以下のようなものを入れておくと自動で読み込んでくれる

ftdetect/ejs.vim

au BufNewFile,BufRead *.ejs setf html ".ejsを開くときはファイルタイプをhtmlにする

これでejsを開くときはhtmlとして認識してくれる
僕は他にもcapistranoの.capをrubyにしたりしている

あまり使う機会はないかもしれないが、覚えておくと便利かも