How to set syntax specific settings in my VIMRC?

4

2

I work with several languages and markups in vim every day (ruby, python, javascript, CSS, HTML, etc), and would like to have different settings for each buffer when I fire up my editor. How can I detect which syntax is loaded in the current buffer?

Specifically, I really prefer python indent to be 4 spaces, while other languages are find with 2. I've envisioned something like this in my .vimrc file:

if syntax == 'python'
  set softtabstop=4
  set shiftwidth=4
else if syntax == 'html'
  " ...
endif

Anything like that in vim? thanks.

sa125

Posted 2010-12-01T09:01:58.663

Reputation: 916

Answers

7

Use the FileType autocommand event. See :h autocmd.txt for details.

au Filetype python source ~/.vim/scripts/python.vim

Ignacio Vazquez-Abrams

Posted 2010-12-01T09:01:58.663

Reputation: 100 516

2Why creating non standard directories ? -> ~/.vim/ftplugin ! – Luc Hermitte – 2010-12-01T10:12:31.060

1Thanks - what I ended up doing is using your idea with some modification: au FileType python set softtabstop=4 | set shiftwidth=4 – sa125 – 2010-12-01T10:42:33.747

2

Luc Hermitte

Posted 2010-12-01T09:01:58.663

Reputation: 1 575