]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Enable folding for Vim and XML.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 86a6cc9f908045740ad5d70275927b47bc9ca88e..75283da711ca796f02b4ee243951c7b70afb1dee 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -54,6 +54,11 @@ set history=1000
 " Increase number of possible undos.
 set undolevels=1000
 
+if has('viminfo')
+    " Remember marks (including the last cursor position) for more files.
+    set viminfo^='1000
+endif
+
 " Use strong encryption if possible, also used for swap/undo files.
 if exists('+cryptmethod')
     set cryptmethod=blowfish
@@ -197,6 +202,10 @@ endif
 
 " MAPPINGS (except for plugins, see PLUGIN SETTINGS below)
 
+" noremap is used to make sure the right side is executed as is and can't be
+" modified by a plugin or other settings. Except for <Nop> which isn't
+" affected by mappings.
+
 " Easy way to exit insert mode.
 inoremap jj <Esc>
 inoremap jk <Esc>
@@ -245,16 +254,16 @@ nnoremap <silent> gb :bnext<CR>
 nnoremap <silent> gB :bprev<CR>
 
 " Fast access to buffers.
-nnoremap <silent> <Leader>1 :1b<CR>
-nnoremap <silent> <Leader>2 :2b<CR>
-nnoremap <silent> <Leader>3 :3b<CR>
-nnoremap <silent> <Leader>4 :4b<CR>
-nnoremap <silent> <Leader>5 :5b<CR>
-nnoremap <silent> <Leader>6 :6b<CR>
-nnoremap <silent> <Leader>7 :7b<CR>
-nnoremap <silent> <Leader>8 :8b<CR>
-nnoremap <silent> <Leader>9 :9b<CR>
-nnoremap <silent> <Leader>0 :10b<CR>
+nnoremap <silent> <Leader>1 :1buffer<CR>
+nnoremap <silent> <Leader>2 :2buffer<CR>
+nnoremap <silent> <Leader>3 :3buffer<CR>
+nnoremap <silent> <Leader>4 :4buffer<CR>
+nnoremap <silent> <Leader>5 :5buffer<CR>
+nnoremap <silent> <Leader>6 :6buffer<CR>
+nnoremap <silent> <Leader>7 :7buffer<CR>
+nnoremap <silent> <Leader>8 :8buffer<CR>
+nnoremap <silent> <Leader>9 :9buffer<CR>
+nnoremap <silent> <Leader>0 :10buffer<CR>
 
 " Make last active window the only window. Similar to <C-W> o.
 nnoremap <C-W>O <C-W>p<C-W>o
@@ -315,19 +324,6 @@ else
         \ ((getcmdtype() == ':' && getcmdpos() <= 3) ? 'qa' : 'Qa')
 endif
 
-" Make sure xa0 (alt + space) is automatically changed to a normal whitespace
-" if pressed accidentally while in insert mode (happens on Mac when alt
-" doesn't send escape). filereadable() is necessary for Leopard were 'mac' is
-" no longer set on the console.
-if has('mac') || filereadable('/Users/.localized')
-    inoremap <Char-0xa0> <Space>
-endif
-
-" Disable Apple style movements in MacVim.
-if has('gui_macvim')
-    let g:macvim_skip_cmd_opt_movement = 1
-endif
-
 " In case 'hlsearch' is used disable it with <C-L>. Thanks to frogonwheels and
 " vimgor (bot) in #vim on Freenode (2010-03-30 05:58 CEST).
 noremap <silent> <C-L> :nohlsearch<CR><C-L>
@@ -408,6 +404,15 @@ if has('syntax')
         set synmaxcol=500
     endif
 
+" Use (limited) syntax based omni completion if no other omni completion is
+" available. Taken from :help ft-syntax-omni.
+    if has('autocmd') && exists('+omnifunc')
+        autocmd FileType *
+            \ if &omnifunc == '' |
+            \     setlocal omnifunc=syntaxcomplete#Complete |
+            \ endif
+    endif
+
 " Highlight lines longer than 78 characters. Thanks to Tony Mechelynck
 " <antoine.mechelynck@gmail.com> from the Vim mailing list. It can easily be
 " disabled when necessary with :2match (in Vim >= 700).
@@ -444,6 +449,10 @@ if has('syntax')
     let g:perl_fold_blocks = 1
     let g:perl_nofold_packages = 1
     let g:perl_include_pod = 1 " syntax coloring for PODs
+    " Vim, enable folding for autogroups (a) and functions (f).
+    let g:vimsyn_folding = "af"
+    " XML.
+    let g:xml_syntax_folding = 1
 endif