--- /dev/null
+setlocal noexpandtab
+setlocal shiftwidth=2
+setlocal tabstop=2
+
+syn match puppetBadWhitespace /^ \+/ " leading spaces
+syn match puppetBadWhitespace /\s\+$/ " trailing whitespace
+syn match puppetBadWhitespace /[^\t]\zs\t\+/ " embedded tab
+syn match puppetBadWhitespace /\t\zs \+/ " space(s) following tab
+highlight puppetBadWhitespace ctermbg=red guibg=red
+
+" Spellcheck in comments.
+setlocal spell
+syn match puppetComment "\s*#.*$" contains=puppetTodo,@Spell
+syn region puppetComment start="/\*" end="\*/" contains=puppetTodo,@Spell extend
+
+" Play nicely with ctags.
+setlocal iskeyword=@,48-57,_,:,- " not strictly valid but required
+setlocal tags=~/Projects/puppet/tags " you probably need to change this