" 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
" Don't store swap files in the same directory as the edited file.
set directory-=.
-" But store them in ~/.tmp if available.
+" 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
" 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
" 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
\ '| 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
let g:perl_include_pod = 1 " syntax coloring for PODs
" Python.
let g:python_highlight_all = 1
+ " Shell.
+ let g:sh_noisk = 1 " don't add . to 'iskeyword'
+ let g:sh_is_posix = 1 " POSIX shell (e.g. dash) is compatible enough
+ let g:sh_fold_enabled = 7 " functions (1), heredoc (2) and if/do/for (4)
" Vim.
let g:vimsyn_embed = 0 " don't highlight embedded languages
let g:vimsyn_folding = 'af' " folding for autogroups (a) and functions (f)
if has('eval')
" Use pathogen which allows one 'runtimepath' entry per plugin. This makes
" installing/removing/updating plugins simple. (Used for plugins with more
-" than one file.)
+" than one file.) Ignore errors in case pathogen is not installed.
if v:version >= 700
- execute 'call pathogen#runtime_append_all_bundles()'
+ silent! execute 'call pathogen#runtime_append_all_bundles()'
endif
" Settings for the NERD commenter.
autocmd QuickFixCmdPre * write
endif
+" 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.
+" 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
" Disable spell checking for files which don't need it.