]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Add tab and precedes to 'listchars'.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 9c3833a734067cd47e2f92b1014417daeabde6b9..623b60fd837d51ecf7f285f80c6e8ab9af193099 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -1,6 +1,6 @@
 " Vim main configuration file.
 
-" Copyright (C) 2011-2012  Simon Ruderich
+" Copyright (C) 2008-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
@@ -51,7 +51,7 @@ set runtimepath^=~/.vim,~/.vim/runtime
 
 " Don't store swap files in the same directory as the edited file.
 set directory-=.
-" But store them in ~/.tmp if available or ~/tmp (used by default).
+" But store them in ~/.tmp or ~/tmp (already set by default) if available.
 set directory^=~/.tmp
 
 " Disable modelines as they may cause security problems. Instead use
@@ -139,7 +139,11 @@ set incsearch
 " Activate syntax folding.
 if has('folding')
     set foldmethod=syntax
-    set foldcolumn=2
+    " Only use fold column if we have enough space (for example in a (virtual)
+    " terminals).
+    if &columns > 80
+        set foldcolumn=2
+    endif
     set foldlevel=99 " no closed folds at default, 'foldenable' would disable
                      " folding which is not what I want
 endif
@@ -150,7 +154,7 @@ set smartcase
 
 " Activate spell checking, use English as default.
 if exists('+spell') && has('syntax')
-    " But not when diffing as spell checking is distracting in this case.
+    " But not when diffing because spell checking is distracting in this case.
     if !&diff
         set spell
     endif
@@ -194,10 +198,16 @@ endif
 " remove the highlighting until the next search.
 set hlsearch
 
-" Display tabs, trailing space, non breakable spaces and long lines (when
-" wrapping is disabled).
+" Display some special characters.
 set list
-set listchars=trail:-,extends:>
+set listchars=
+" Display tabs as ">--------".
+set listchars+=tab:>-
+" Display trailing whitespace as "-".
+set listchars+=trail:-
+" Display markers for long lines when wrapping is disabled.
+set listchars+=extends:>,precedes:<
+" Display non-breakable space as "!".
 if v:version >= 700
     set listchars+=nbsp:!
 endif
@@ -525,14 +535,15 @@ if has('syntax')
                   \ '|     call matchadd("Todo", l:x)'
                   \ '| endfor'
 
-" Highlight unicode whitespace which is no normal whitespace (0x20).
+" Highlight Unicode whitespace which is no normal whitespace (0x20).
             let l:spaces = ['00a0', '1680', '180e', '2000', '2001', '2002',
                           \ '2003', '2004', '2005', '2006', '2007', '2008',
                           \ '2009', '200a', '200b', '200c', '200d', '202f',
                           \ '205f', '2060', '3000', 'feff']
-            " Compatibility fix for Vim 6.4.
+            " Compatibility fix for Vim 6.4. Escape \ inside the " string or
+            " it won't work!
             execute '  for l:x in l:spaces'
-                  \ '|     call matchadd("Error", "\%u" . l:x)'
+                  \ '|     call matchadd("Error", "\\%u" . l:x)'
                   \ '| endfor'
         endif
     endfunction
@@ -641,8 +652,11 @@ if has('autocmd')
 " Don't ignore case while in insert mode, but ignore case in all other modes.
 " This causes <C-N>/<C-P> to honor the case and thus only complete matching
 " capitalization. But while searching (/) 'ignorecase' is used.
-        autocmd InsertEnter * set noignorecase
-        autocmd InsertLeave * set   ignorecase
+" InsertEnter/InsertLeave doesn't exist in older Vims.
+        if exists('##InsertEnter') && exists('##InsertLeave')
+            autocmd InsertEnter * set noignorecase
+            autocmd InsertLeave * set   ignorecase
+        endif
 
 " AFTER/FTPLUGIN AUTO COMMANDS