X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=a793d1462d792a575e522042148e8621be99a0d4;hb=2d6a55909c7e476b3257444ae248fbc8f7a7ab93;hp=20685e94930d75e6b0ba75f06fea735d339f4bf1;hpb=be676bfae2c0ef626e3c132ab9c59f147116aec5;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index 20685e9..a793d14 100644 --- a/vimrc +++ b/vimrc @@ -368,7 +368,9 @@ if has('eval') 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 * :call VSetSearch()// @@ -495,30 +497,50 @@ 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 " from the Vim mailing list. It can easily be " disabled when necessary with :2match (in Vim >= 700). - if exists(':2match') - 2match Todo /\%>78v./ - else - match Todo /\%>78v./ - endif + if exists(':2match') + 2match Todo /\%>78v./ + else + match Todo /\%>78v./ + endif - if exists('*matchadd') + if exists('*matchadd') " Highlight some important keywords in all documents. - for s:x in ['TODO', 'XXX', 'FIXME', 'CHANGED', 'REMOVED', 'DELETED'] - call matchadd('Todo', s:x) - endfor + for l:x in ['TODO', 'XXX', 'FIXME', + \ 'CHANGED', 'REMOVED', 'DELETED'] + call matchadd('Todo', l:x) + endfor " Highlight unicode whitespace which is no normal whitespace (0x20). - for s:x in ['00a0', '1680', '180e', '2000', '2001', '2002', '2003', - \ '2004', '2005', '2006', '2007', '2008', '2009', '200a', - \ '200b', '200c', '200d', '202f', '205f', '2060', '3000', - \ 'feff'] - call matchadd('Error', '\%u' . s:x) - endfor + for l:x in ['00a0', '1680', '180e', '2000', '2001', '2002', + \ '2003', '2004', '2005', '2006', '2007', '2008', + \ '2009', '200a', '200b', '200c', '200d', '202f', + \ '205f', '2060', '3000', 'feff'] + 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 CustomSyntaxHighlights() + if has('autocmd') + augroup vimrc + autocmd WinEnter * call CustomSyntaxHighlights() + augroup END endif + " Settings for specific filetypes. " Haskell.