X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=b537d1723e0d9b949333bfa4f69ce6c7ac9c279c;hb=8baae4bb82f16e8ba20237ee82de67db21ed3f3d;hp=bde35b6f739fe5d2aeafc7dff9427c47a6b1bc11;hpb=64309b7f39772977ed42b003b308b2210222e3c6;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index bde35b6..b537d17 100644 --- a/vimrc +++ b/vimrc @@ -65,14 +65,37 @@ 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 + +" Ignore files with the following extensions because I almost never want to +" edit them in Vim (specifying them manually still works of course). +set wildignore= +" C +set wildignore+=*.o,*.d,*.so +" Java +set wildignore+=*.class +" LaTeX +set wildignore+=*.aux,*.log,*.out,*.toc,*.pdf +" Python +set wildignore+=*.pyc + +" 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 +106,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! @@ -166,7 +189,7 @@ endif 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. @@ -179,6 +202,8 @@ if has('folding') endif set foldlevel=99 " no closed folds at default, 'foldenable' would disable " folding which is not what I want + " Don't open folds for block movements like '(', '{', '[[', '[{', etc. + set foldopen-=block endif " Only check case if the searched word contains a capital character. @@ -196,7 +221,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 @@ -353,7 +378,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 @@ -561,7 +586,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 @@ -748,14 +773,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. @@ -771,6 +798,16 @@ if has('eval') let g:xptemplate_brace_complete = 0 " Only highlight the current placeholder. let g:xptemplate_highlight = 'current' + +" CtrlP settings. + " Don't manage the working directory (the default setting is too slow for + " me). + let g:ctrlp_working_path_mode = 0 + " Path to cache directory. I prefer to keep generated files as local as + " possible. + let g:ctrlp_cache_dir = $HOME . '/.vim/cache/ctrlp' + " Permanent cache, cleared by a crontab entry. + let g:ctrlp_clear_cache_on_exit = 0 endif @@ -823,6 +860,23 @@ if has('autocmd') autocmd InsertLeave * set ignorecase endif +" Display a warning when editing a file which contains "do not edit" (ignoring +" the case, \c), for example template files which were preprocessed or +" auto-generated files. Especially useful when the header is not displayed on +" the first screen, e.g. when the old position is restored. Not for vimrc +" though. + function! s:SearchForDoNotEditHeader() + if search('\cdo not edit', 'n') == 0 + \ || expand(':t') =~# '^.\?vimrc$' + return + endif + + echohl WarningMsg + echo 'Do not edit this file! (Maybe a template file.)' + echohl None + endfunction + autocmd BufRead * call SearchForDoNotEditHeader() + " AFTER/FTPLUGIN AUTO COMMANDS " Disable spell checking for files which don't need it.