" matches after another (full). Thanks to pbrisbin
" (http://pbrisbin.com:8080/dotfiles/vimrc).
set wildmode=list:longest,full
+" Ignore case when completing files/directories.
+if exists('+wildignorecase')
+ set wildignorecase
+endif
+
+" Show completion menu even if only one entry matches.
+if exists('+completeopt')
+ set completeopt+=menuone
+endif
-" Increase history of executed commands (:).
+" Increase history of executed commands (:) and search patterns (/).
set history=1000
" Increase number of possible undos.
set undolevels=1000
-" Remember marks (including the last cursor position) for more files.
+" Remember marks (including the last cursor position) for more files. ^= is
+" necessary because 'viminfo' is parsed from the beginning and the first match
+" is used.
if has('viminfo')
set viminfo^='1000
endif
endif
" Clear all vimrc-related autocmds. Has to be done here as the vimrc augroup
-" is used multiple times.
+" is used multiple times. Necessary to support reloading the vimrc.
if has('autocmd')
augroup vimrc
autocmd!
" HELPER FUNCTIONS
+if has('eval')
" Check if the given syntax group is available. Thanks to bairui in #vim on
" Freenode (2012-02-19 01:15 CET) for the try/catch silent highlight idea.
-if has('eval')
function! s:HasSyntaxGroup(group)
try
execute 'silent highlight ' . a:group
endtry
return 1
endfunction
+
+" Check if the given Vim version and patch is available.
+ function! s:HasVersionAndPatch(version, patch)
+ return v:version > a:version
+ \ || (v:version == a:version && has('patch' . a:patch))
+ endfunction
endif
" Don't break a line if was already longer then 'textwidth' when insert mode
" started.
set formatoptions+=l
+" Remove comment leader when joining lines where it makes sense.
+if <SID>HasVersionAndPatch(703, 541)
+ set formatoptions+=j
+endif
" Allow virtual editing (cursor can be positioned anywhere, even when there is
" no character) in visual block mode.
set virtualedit=block
" Already display matches while typing the search command. This makes spotting
-" errors easy.
+" typos easy and searching faster.
set incsearch
" Activate syntax folding.
" Allow buffers with changes to be hidden. Very important for effective
" editing with multiple buffers. Prevents the "E37: No write since last change
-" (add ! to override)" warning.
+" (add ! to override)" warning when switching buffers.
set hidden
set statusline+=%02n " buffer number
set statusline+=%{StatuslineBufferCount()} " highest buffer number
set statusline+=:
- if has('modify_fname')
+ if has('modify_fname') && v:version >= 700 " some functions need 7.0
set statusline+=%{StatuslineRelativeFilename()} " path to current file
set statusline+=\ " space after path
else
" installing/removing/updating plugins simple. (Used for plugins with more
" than one file.) Ignore errors in case pathogen is not installed.
if v:version >= 700
- silent! execute 'call pathogen#runtime_append_all_bundles()'
+ silent! execute 'call pathogen#infect()'
endif
" Settings for securemodelines.
" Only allow items I need (also includes spl which is not enabled by
" default).
- let g:secure_modelines_allowed_items = ['ft', 'spl', 'fdm',
- \ 'sw', 'sts', 'noet']
+ if v:version >= 700 " need lists
+ let g:secure_modelines_allowed_items = ['ft', 'spl', 'fdm',
+ \ 'sw', 'sts', 'noet']
+ endif
" Settings for the NERD commenter.
" Don't create any mappings I don't want to use.