[Vim] 拡張子ごとにインデントを変更する方法
だいぶvimも使い慣れてきたのですが,
インデントが全て同じになってしまっていて
不便だったので拡張子ごとに設定してみたというお話です。
ファイルタイプの確認
今回は拡張子 .jsを対象に紹介します。
1. hoge.jsというファイルをvimで開きます。
2. exモード(:wq の時に使う ':' で入るモード)で以下を入力
:echo &filetype
今回はこのファイルタイプを使っていきます。
導入
それぞれの設定は以下のようになります。
if has('autocmd') を使っているのは,
古いバージョンでautocmdが存在しなかった時のために入れてあります。
.vimrc
"""""""""""""""""""""""""" インデント""""""""""""""""""""""""setautoindent"改行時に前の行のインデントを計測setsmartindent"改行時に入力された行の末尾に合わせて次の行のインデントを増減する setcindent"Cプログラムファイルの自動インデントを始めるsetsmarttab"新しい行を作った時に高度な自動インデントを行うsetexpandtab"タブ入力を複数の空白に置き換える settabstop=2"タブを含むファイルを開いた際, タブを何文字の空白に変換するかsetshiftwidth=2"自動インデントで入る空白数setsofttabstop=0"キーボードから入るタブの数if has("autocmd") "ファイルタイプの検索を有効にするfiletype plugin on "ファイルタイプに合わせたインデントを利用filetype indent on "sw=softtabstop, sts=shiftwidth, ts=tabstop, et=expandtabの略autocmdFileTypecsetlocalsw=4sts=4ts=4etautocmdFileType html setlocalsw=4sts=4ts=4etautocmdFileTyperubysetlocalsw=2sts=2ts=2etautocmdFileTypejssetlocalsw=4sts=4ts=4etautocmdFileType zsh setlocalsw=4sts=4ts=4etautocmdFileType python setlocalsw=4sts=4ts=4etautocmdFileType scala setlocalsw=4sts=4ts=4etautocmdFileType json setlocalsw=4sts=4ts=4etautocmdFileType html setlocalsw=4sts=4ts=4etautocmdFileType css setlocalsw=4sts=4ts=4etautocmdFileType scss setlocalsw=4sts=4ts=4etautocmdFileType sass setlocalsw=4sts=4ts=4etautocmdFileType javascript setlocalsw=4sts=4ts=4etendif
上記に載せてる拡張子以外にもファイルタイプさえわかれば,
設定できますので他にも設定していこうと思います。