* viでファイルタイプごとに設定を切り替える [#ndf8e205]
#anno1(2010-01-21)
viで拡張子ごとに設定を切り替えたいことがあります。何となくPythonを使おうと思ったときに、タブとスペースが混在すると勘弁してくれってなる・・・ってのが今回の動機です(過去のプログラマーなのでこのスタイル嫌い・・・)。
viで拡張子ごとに設定を切り替えたいことがあります。何となくPythonを使おうと思ったときに、タブとスペースが混在するとインデントがややこしくなる・・・ってのが今回の動機です(過去のプログラマーなのでこのスタイル嫌い・・・)。
~
** ファイルタイププラグインの有効化 [#l0a1047a]
Vineのvim-6.4ではファイルタイププラグインが有効になってますが、ファイルタイププラグインが有効になってない場合は以下のディレクティブを設定ファイルに追加します。
file type plugin on
Vineでは/etc/vim/vimrc.jaにおいて、
file type plugin indent on
になってました。
** ファイルタイプの登録 [#q8c0b30a]
ホームディレクトリにファイルタイプ定義用のファイルを作成します。UNIX系では''~/.vim/filetype.vim''だそうです。存在しない場合は作成します。ここでは拡張子.pyに対して登録することにします。
:~/.vim/filetype.vim|
augroup filetypedetect
au BufRead,BufNewFile *.py setfiletype python
augroup END
続いて、Pythonのファイル固有の設定を記述します。viの難しい設定はよくわからないので、「タブを挿入したときはスペースに変換。タブ幅は4」という設定を追加します。設定ファイルは''~/.vim/ftplugin/'''ファイルタイプ'''.vim''です。
:~/.vim/ftplugin/python.vim|
set expandtab <-- タブをスペースに変換
set tabstop=4 <-- タブ幅を4とする
これで.pyファイルを開いたり作成したときに設定が適用されていればOK。とりあえずはタブとスペースの混在で泣かされることは減ると思います。~
なお、システムの設定自体をいじる場合はVineでは''/usr/share/vim/vim64/''以下の''filetype.vim''と''ftplugin/''以下を編集すればいいはず。
** 参考サイト [#ve890588]
- http://homepage.mac.com/xcatsan/vim/vimtips.html
- http://kimitakeblog.net/item/154
- http://homepage1.nifty.com/niwatori/vi/y06.html -- 拡張子別設定、別の方法(set fexrc)