vimで特定のファイルタイプだけタブインデントにする方法

April 20, 2014 - vim

rubyやpythonなど通常のプログラムを書く場合は、基本的にソフトタブ(2spaces)でインデントされるようにvimを設定しています。

set noexpandtab
set tabstop=2
set shiftwidth=2

けれど、Goの場合はインデントはハードタブが通例。

なので拡張子が”.go”の場合だけハードタブでインデントするための設定を.vimrcに書いておきます。

if expand("%:t") =~ ".*\.go"
  set noexpandtab
  set tabstop=4
  set shiftwidth=4
endif

%:tはディレクトリ含まないファイル名。

autocmd使うほうが良いかも。

au BufNewFile,BufRead *.go set noexpandtab tabstop=4 shiftwidth=4

ちなみに、set expandtabしてる状態でタブを入力する場合はCtrl-v + <tab>でハードタブが入力できます。