]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Prefer '..' for strings.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index bb0bfe6ce268e5722210a7f383fb0e51e559c5ec..11aae8de9dc1cd2aef326a19897b31f3b760440f 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -1,5 +1,20 @@
 " Vim main configuration file.
 
+" Copyright (C) 2011-2012  Simon Ruderich
+"
+" This file is free software: you can redistribute it and/or modify
+" it under the terms of the GNU General Public License as published by
+" the Free Software Foundation, either version 3 of the License, or
+" (at your option) any later version.
+"
+" This file is distributed in the hope that it will be useful,
+" but WITHOUT ANY WARRANTY; without even the implied warranty of
+" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+" GNU General Public License for more details.
+"
+" You should have received a copy of the GNU General Public License
+" along with this file.  If not, see <http://www.gnu.org/licenses/>.
+
 
 " EDITOR SETTINGS
 
@@ -64,6 +79,14 @@ if exists('+cryptmethod')
     set cryptmethod=blowfish
 endif
 
+" Clear all vimrc-related autocmds. Has to be done here as the vimrc augroup
+" is used multiple times.
+if has('autocmd')
+    augroup vimrc
+        autocmd!
+    augroup END
+endif
+
 
 " EDIT SETTINGS
 
@@ -404,6 +427,17 @@ 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')
+        augroup vimrc
+            autocmd FileType *
+                \ if &omnifunc == '' |
+                \     setlocal omnifunc=syntaxcomplete#Complete |
+                \ endif
+        augroup END
+    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).
@@ -431,15 +465,22 @@ if has('syntax')
 " Settings for specific filetypes.
 
     " Haskell.
+    let g:hs_highlight_delimiters = 1
     let g:hs_highlight_boolean = 1
     let g:hs_highlight_types = 1
     let g:hs_highlight_more_types = 1
-
     " Perl.
     let g:perl_fold = 1
     let g:perl_fold_blocks = 1
     let g:perl_nofold_packages = 1
     let g:perl_include_pod = 1 " syntax coloring for PODs
+    " Python.
+    let g:python_highlight_all = 1
+    " Vim.
+    let g:vimsyn_embed = 0      " don't highlight embedded languages
+    let g:vimsyn_folding = 'af' " folding for autogroups (a) and functions (f)
+    " XML.
+    let g:xml_syntax_folding = 1
 endif
 
 
@@ -476,12 +517,10 @@ endif
 " twice.
 if has('autocmd')
     augroup vimrc
-" Remove all autocmds from the current group.
-        autocmd!
 
 " Go to last position of opened files. Taken from :help last-position-jump.
         autocmd BufReadPost *
-            \ if line("'\"") > 1 && line("'\"") <= line("$") |
+            \ if line("'\"") > 1 && line("'\"") <= line('$') |
             \     execute "normal! g'\"" |
             \ endif
 " But not for Git commits, go to beginning of the file.
@@ -500,13 +539,17 @@ if has('autocmd')
 
 " Automatically disable 'paste' mode when leaving insert mode. Thanks to
 " Raimondi in #vim on Freenode (2010-08-14 23:01 CEST). Very useful as I only
-" want to paste once and then 'paste' gets automatically unset.
+" want to paste once and then 'paste' gets automatically unset. InsertLeave
+" doesn't exist in older Vims.
         if exists('##InsertLeave')
             autocmd InsertLeave * set nopaste
         endif
 
-" Write file when running :mak[e] before 'makeprg' is called.
-        autocmd QuickFixCmdPre * write
+" Write file when running :mak[e] before 'makeprg' is called. QuickFixCmdPre
+" doesn't exist in older Vims.
+        if exists('##QuickFixCmdPre')
+            autocmd QuickFixCmdPre * write
+        endif
 
 " AFTER/FTPLUGIN AUTO COMMANDS
 
@@ -555,7 +598,7 @@ if has('eval')
 " file it was loaded from, thus the changes you made. Thanks to the
 " vimrc_example.vim file in Vim's source. Modified to use the same filetype
 " for the diffed file than the filetype for the original file.
-    if !exists(":DiffOrig")
+    if !exists(':DiffOrig')
         command DiffOrig
             \ let s:diff_orig_filetype = &filetype
             \ | vertical new