vim - Setting tab width based on file type -


i'm trying learn use vim. indenting 4 spaces use 2 spaces languages, such nim , moonscript. tried adding .vimrc:

autocmd bufnewfile,bufread,bufenter *.nim :setlocal tabstop=2 shiftwidth=2 softtabstop=2 

problem? doesn't anything! happens tab nothing when press it! doing wrong?

autocmd bufnewfile,bufread *.nim setlocal tabstop=2 shiftwidth=2 softtabstop=2 

this should work (after restarting vim / re-editing existing file via :e!) fine, mixes filetype detection filetype settings. vim has intermediate abstraction called filetype, should use. it, map file globs *.nim filetype nim, , define settings either via :autocmd filetype, or filetype plugin in ~/.vim/ftplugin/nim.vim (for latter, need :filetype plugin on in ~/.vimrc).

steps

so, create filetype detection in ~/.vim/ftdetect/nim.vim:

autocmd bufread,bufnewfile *.nim setfiletype nim 

then, create filetype plugin in ~/.vim/ftplugin/nim.vim:

setlocal tabstop=2 shiftwidth=2 softtabstop=2 

you can check these loaded correctly via :scriptnames output. after restart of vim, should work, , can add additional settings latter file. if filetype derived another, can add :runtime! ftplugin/javascript.vim (for example) in there settings, too.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -