X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=vimrc;h=64a622595dc9da1bc5bdd76f813e044423b05735;hb=4b75b7303116e43b1d842f8102dbb8a78cc880ce;hp=35b983095bc556cff7a9f1850d83eb558faa08a1;hpb=1d73991ce43d1743f7f875d98e41986dc9f96a53;p=config%2Fdotfiles.git diff --git a/vimrc b/vimrc index 35b9830..64a6225 100644 --- a/vimrc +++ b/vimrc @@ -41,6 +41,11 @@ endif " Make sure Vim (and not Vi) settings are used. set nocompatible +" Disallow :autocmd, shell and write commands in .vimrc and .exrc files in the +" current directory. Only used if 'exrc' is enabled (off by default), +" precaution just in case somebody enables 'exrc'. +set secure + " Use UTF-8 for all internal data (buffers, registers, etc.). This doesn't " affect reading files in different encodings, see 'fileencodings' for that. set encoding=utf-8 @@ -449,10 +454,10 @@ if has('statusline') set statusline+=: if has('modify_fname') && v:version >= 700 " some functions need 7.0 set statusline+=%{SRF()} " path to current file - set statusline+=\ " space after path else - set statusline+=%f\ " path to current file in buffer + set statusline+=%f " path to current file in buffer endif + set statusline+=\ " space after path set statusline+=%h " [help] if buffer is help file set statusline+=%w " [Preview] if buffer is preview buffer set statusline+=%m " [+] if buffer was modified, @@ -491,8 +496,10 @@ cnoremap jk " And fix my typos ... inoremap JK inoremap Jk +inoremap jK cnoremap JK cnoremap Jk +cnoremap jK " Disable arrow keys for all modes except command modes. Thanks to James Vega " (http://git.jamessan.com/?p=etc/vim.git;a=summary). @@ -606,6 +613,21 @@ nnoremap 8 :8buffer nnoremap 9 :9buffer nnoremap 0 :10buffer +" Use real tabs instead of soft tabs. +if has('eval') +" Switch from soft tabs to real tabs. + function! s:UseTabs() + setlocal noexpandtab shiftwidth=8 softtabstop=8 + endfunction + nnoremap t :call UseTabs() +endif +" Enable "verbatim" mode. Used to view files with long lines or without syntax +" coloring. 'list' is not changed, see next mapping. +nnoremap v :setlocal nowrap nospell synmaxcol=0 + \ :2match +" Toggle 'list'. +nnoremap l :set invlist + " Make last active window the only window. Similar to o. nnoremap O po @@ -622,11 +644,6 @@ else nmap sd endif -" Add semicolon to the end of the line. Thanks to -" http://www.van-laarhoven.org/vim/.vimrc for this idea and godlygeek in #vim -" on Freenode for an improved version which doesn't clobber any marks. -nnoremap ; :call setline(line('.'), getline('.') . ';') - if has('eval') " * and # for selections in visual mode. Thanks to " http://got-ravings.blogspot.com/2008/07/vim-pr0n-visual-search-mappings.html @@ -755,7 +772,11 @@ inoreabbrev completly completely " Activate syntax coloring. if has('syntax') - syntax enable + " But only if it wasn't already active. Prevents breaking the syntax + " coloring when reloading the vimrc. Thanks to johnLate for the idea. + if !exists('g:syntax_on') + syntax enable + endif " Don't highlight more than 500 columns as I normally don't have that long " lines and they slow down syntax coloring. Thanks to Derek Wyatt @@ -801,7 +822,7 @@ if has('syntax') if exists('*matchadd') " Highlight some important keywords in all documents. - let l:todos = ['TODO', 'XXX', 'FIXME', + let l:todos = ['TODO', 'XXX', 'FIXME', 'NOTE', \ 'CHANGED', 'REMOVED', 'DELETED'] " Compatibility fix for Vim 6.4 which can't handle for in function " (without function it's ignored). @@ -988,16 +1009,17 @@ if has('autocmd') endif " Display a warning when editing a file which contains "do not edit" (ignoring -" the case) in the first lines of the file, 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. +" the case) and similar messages in the first lines of the file, 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. function! s:SearchForDoNotEditHeader() " Only search the first 20 lines to prevent false positives, e.g. " in scripts which write files containing this warning and ignore " the case (\c). (Can't use search()'s {stopline} as we might not " start searching from the top.) - let l:match = search('\cdo not edit', 'n') + let l:search = '\c\(do not \(edit\|modify\)\|autogenerated by\)' + let l:match = search(l:search, 'n') if l:match == 0 || l:match > 20 return endif