+ if !&diff && exists(':2match')
+ 2match Todo /\%>78v./
+ elseif !&diff
+ match Todo /\%>78v./
+ endif
+
+ if exists('*matchadd')
+" Highlight some important keywords in all documents.
+ let l:todos = ['TODO', 'XXX', 'FIXME',
+ \ 'CHANGED', 'REMOVED', 'DELETED']
+ " Compatibility fix for Vim 6.4 which can't handle for in function
+ " (without function it's ignored).
+ execute ' for l:x in l:todos'
+ \ '| call matchadd("Todo", l:x)'
+ \ '| endfor'
+
+" Highlight Unicode whitespace which is no normal whitespace (0x20).
+ let l:spaces = ['00a0', '1680', '180e', '2000', '2001', '2002',
+ \ '2003', '2004', '2005', '2006', '2007', '2008',
+ \ '2009', '200a', '200b', '200c', '200d', '202f',
+ \ '205f', '2060', '3000', 'feff']
+ " Compatibility fix for Vim 6.4. Escape \ inside the " string or
+ " it won't work!
+ execute ' for l:x in l:spaces'
+ \ '| call matchadd("Error", "\\%u" . l:x)'
+ \ '| endfor'
+ endif
+ endfunction
+" Enable highlights for the current and all new windows. Thanks to bairui in
+" #vim on Freenode (2012-04-01 00:22 CEST) for the WinEnter suggestion.
+ call <SID>CustomSyntaxHighlights()
+ if has('autocmd')
+ augroup vimrc
+ autocmd WinEnter * call <SID>CustomSyntaxHighlights()
+ augroup END