X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=96fb449245b772e83746e2f0b5f2d6e168a9f097;hb=a52de73f7fdafce4bf2e181b4679895bf7c96fe4;hp=50c6b70ef316dd981abf86e5281639c5d061510f;hpb=18f95ebbbf24e42192e380fc026e1dab038a2e9a;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index 50c6b70..96fb449 100644 --- a/vimrc +++ b/vimrc @@ -65,14 +65,25 @@ set nomodeline " 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 @@ -83,7 +94,7 @@ if exists('+cryptmethod') 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! @@ -93,9 +104,9 @@ endif " 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 @@ -105,6 +116,12 @@ if has('eval') 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 @@ -120,6 +137,9 @@ endif " existing files. set fileencodings=utf-8,latin1 +" Always use unix line-endings for new files. +set fileformats=unix,dos + " Wrap text after 78 characters. set textwidth=78 @@ -147,13 +167,17 @@ set formatoptions+=ro " 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 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. @@ -183,7 +207,7 @@ endif " 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 @@ -194,7 +218,7 @@ set hidden set background=dark " Use my color scheme if 256 colors are available. -if &t_Co == 256 +if &t_Co == 256 || has('gui_running') colorscheme simon endif @@ -340,7 +364,7 @@ if has('statusline') 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 @@ -548,7 +572,7 @@ endif " In case 'hlsearch' is used disable it with . Thanks to frogonwheels and " vimgor (bot) in #vim on Freenode (2010-03-30 05:58 CEST). -noremap :nohlsearch +nnoremap :nohlsearch " in insert mode deletes a lot, break undo sequence before deleting the " line so the change can be undone. Thanks to the vimrc_example.vim file in @@ -735,14 +759,16 @@ if has('eval') " 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.