Basics
tabstop – amount to indent when using <Tab>
shiftwidth – amount to indent when using ‘>’ or ‘<‘
expandtab – always insert spaces at the amount of tabstop
set tabstop=4
set shiftwidth=4
set expandtab
How to change tab size based on filetype
setting it inline
make sure there are no spaces between the languages
autocmd FileType javascript,haskell set tabstop=2 shiftwidth=2
setting it with a function
autocmd FileType javascript, haskell call s:set_indents_at_2() function! s:set_indents_at_2() set tabstop=2 set shiftwidth=2 endfunction