" started.
set formatoptions+=l
" Remove comment leader when joining lines where it makes sense.
-if <SID>HasVersionAndPatch(703, 541)
+if s:HasVersionAndPatch(703, 541)
set formatoptions+=j
endif
endif
endfunction
+ " Display unexpected 'fileformat' and 'fileencoding' settings.
+ function! s:StatuslineFileFormat()
+ if &fileformat != 'unix'
+ return '[' . &fileformat . ']'
+ else
+ return ''
+ endif
+ endfunction
+ function! s:StatuslineFileEncoding()
+ if &fileencoding != '' && &fileencoding != 'utf-8'
+ \ && &filetype != 'help'
+ return '[' . &fileencoding . ']'
+ else
+ return ''
+ endif
+ endfunction
+
" Return current syntax group in brackets or nothing if there's none.
function! s:StatuslineSyntaxGroup()
let l:group = synIDattr(synID(line('.'), col('.'), 1), 'name')
" Short function names to make 'statusline' more readable.
function! SBC()
- return <SID>StatuslineBufferCount()
+ return s:StatuslineBufferCount()
endfunction
function! SRF()
- return <SID>StatuslineRelativeFilename()
+ return s:StatuslineRelativeFilename()
+ endfunction
+ function! SFF()
+ return s:StatuslineFileFormat()
+ endfunction
+ function! SFE()
+ return s:StatuslineFileEncoding()
endfunction
function! SSG()
- return <SID>StatuslineSyntaxGroup()
+ return s:StatuslineSyntaxGroup()
endfunction
set statusline=
set statusline+=%m " [+] if buffer was modified,
" [-] if 'modifiable' is off
set statusline+=%r " [RO] if buffer is read only
+ if v:version >= 700 " %#..# needs 7.0
+ set statusline+=%#Error# " display warnings
+ set statusline+=%{SFF()} " - unexpected file format
+ set statusline+=%{SFE()} " - unexpected file encoding
+ set statusline+=%## " continue with normal colors
+ endif
" on the right
set statusline+=%= " right align
" on Freenode for an improved version which doesn't clobber any marks.
nnoremap <silent> <Leader>; :call setline(line('.'), getline('.') . ';')<CR>
+if has('eval')
" * and # for selections in visual mode. Thanks to
" http://got-ravings.blogspot.com/2008/07/vim-pr0n-visual-search-mappings.html
" and all nerds involved (godlygeek, strull in #vim on Freenode).
-if has('eval')
function! s:VSetSearch()
- let l:temp = @@
+ let l:temp = @@ " unnamed register
normal! gvy
" Added \C to force 'noignorecase' while searching the current visual
" selection. I want to search for the exact string in this case.
endfunction
vnoremap * :<C-U>call <SID>VSetSearch()<CR>//<CR>
vnoremap # :<C-U>call <SID>VSetSearch()<CR>??<CR>
+
+" Use 'noignorecase' for * and #. See comment in s:VSetSearch() for details.
+" Thanks to the writers of s:VSetSearch(), see above.
+ function! s:NSetSearch()
+ let l:cword = expand('<cword>')
+ let l:regex = substitute(escape(l:cword, '\'), '\n', '\\n', 'g')
+ let @/ = '\C\V'. '\<' . l:regex . '\>'
+ endfunction
+ nnoremap * :call <SID>NSetSearch()<CR>//<CR>
+ nnoremap # :call <SID>NSetSearch()<CR>??<CR>
endif
" I often type "W" instead of "w" when trying to save a file. Fix my mistake.
if !&diff && exists(':2match')
" Use ColorColumn for overlong lines if available and my color
" scheme is used.
- if &t_Co == 256 && <SID>HasSyntaxGroup('ColorColumn')
+ if &t_Co == 256 && s:HasSyntaxGroup('ColorColumn')
2match ColorColumn /\%>78v./
else
2match Todo /\%>78v./
" Special highlight for tabs to reduce their visibility in contrast to other
" SpecialKey characters (e.g. ^L).
- if &t_Co == 256 && <SID>HasSyntaxGroup('specialKeyTab')
+ if &t_Co == 256 && s:HasSyntaxGroup('specialKeyTab')
call matchadd('specialKeyTab', '\t')
endif
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()
+ call s:CustomSyntaxHighlights()
if has('autocmd')
augroup vimrc
- autocmd WinEnter * call <SID>CustomSyntaxHighlights()
+ autocmd WinEnter * call s:CustomSyntaxHighlights()
augroup END
endif
echoerr 'Do not edit this file! (Maybe a template file.)'
endfunction
- autocmd BufRead * call <SID>SearchForDoNotEditHeader()
+ autocmd BufRead * call s:SearchForDoNotEditHeader()
" AFTER/FTPLUGIN AUTO COMMANDS