vimで開くファイルの種類(拡張子)に応じてインデントなどの設定を入れかえたいという場合は、filetypeプラグインを作成すると良いようだ。
(ref.) http://vim-jp.org/vimdoc-ja/filetype.html#filetype-plugins
(ref.) http://whileimautomaton.net/2008/09/07213145
Gradleのファイル(.gradle)に対するfiletypeプラグインはグローバルには提供されていない(特に設定を変更していなければ、$VIMRUNTIME/ftpluginディレクトリを見れば確認できる)ようなので、ローカルにfiletypeプラグインを追加した。
$ cat ~/.vim/ftplugin/gradle.vim
" この設定ではグローバルにfiletypeプラグインが追加されても読み込まれない。追加されたら、~/.vim/after/ftplugin下に移動する
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin=1
setlocal tabstop=4
setlocal shiftwidth=4
filetypeプラグインはその名の通り、filetypeが指定されたときに読み込まれる。
(FileTypeの指定)
:set filetype=gradle
...と思っていたがそれも設定次第のようだ。基本的にはfiletype plugin indent on
で大丈夫...なのか?
(ref.) http://d.hatena.ne.jp/wiredool/20120618/1340019962
特定の拡張子のファイル(上記例だと.gradle)を開く際には、自動でfiletypeを設定するように以下の設定を.vimrcに記述しておく。
filetype plugin indent on
au BufRead,BufNewFile *.gradle set filetype=gradle
...と思っていたが、autocmdの設定は~/.vim/ftdetect/(filetype).vim
や、~/.vim/filetype.vim
に置くようだ。
(ref.) http://vim-jp.org/vimdoc-ja/filetype.html#new-filetype