]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
vimrc: Fix custom highlights disappearing in new windows.
authorSimon Ruderich <simon@ruderich.org>
Sat, 31 Mar 2012 22:46:52 +0000 (00:46 +0200)
committerSimon Ruderich <simon@ruderich.org>
Sat, 31 Mar 2012 22:46:52 +0000 (00:46 +0200)
vimrc

diff --git a/vimrc b/vimrc
index 9ae5f86cf2f6a52392b5a1fcd7c10b664a6c4c4e..8c16cd4b31f22de2792f622d4cefbe76d5723e29 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -497,6 +497,15 @@ if has('syntax')
         augroup END
     endif
 
+" Function to enable all custom highlights. Necessary as highlights are
+" window-local and thus must be set for each new window.
+    function! s:CustomSyntaxHighlights()
+        " Not the first time called, nothing to do.
+        if exists('w:vimrc_syntax_run')
+            return
+        endif
+        let w:vimrc_syntax_run = 1
+
 " Highlight lines longer than 78 characters. Thanks to Tony Mechelynck
 " <antoine.mechelynck@gmail.com> from the Vim mailing list. It can easily be
 " disabled when necessary with :2match (in Vim >= 700).
@@ -520,6 +529,16 @@ if has('syntax')
             call matchadd('Error', '\%u' . s: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
+    endif
+
 
 " Settings for specific filetypes.