function! s:VSetSearch()
let l:temp = @@
normal! gvy
- let @/ = '\V' . substitute(escape(@@, '\'), '\n', '\\n', 'g')
+ " Added \C to force 'noignorecase' while searching the current visual
+ " selection. I want to search for the exact string in this case.
+ let @/ = '\C' . '\V' . substitute(escape(@@, '\'), '\n', '\\n', 'g')
let @@ = l:temp
endfunction
vnoremap * :<C-U>call <SID>VSetSearch()<CR>//<CR>
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).
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.