" 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 if available or ~/tmp (used by default).
set directory^=~/.tmp
" Disable modelines as they may cause security problems. Instead use
if exists('*matchadd')
" Highlight some important keywords in all documents.
- for s:x in ['TODO', 'XXX', 'FIXME',
- \ 'CHANGED', 'REMOVED', 'DELETED']
- call matchadd('Todo', s:x)
- endfor
+ let l:todos = ['TODO', 'XXX', 'FIXME',
+ \ 'CHANGED', 'REMOVED', 'DELETED']
+ " Compatibility fix for Vim 6.4 which can't handle for in function
+ " (without function it's ignored).
+ execute ' for l:x in l:todos'
+ \ '| call matchadd("Todo", l:x)'
+ \ '| endfor'
" Highlight unicode whitespace which is no normal whitespace (0x20).
- for s:x in ['00a0', '1680', '180e', '2000', '2001', '2002',
- \ '2003', '2004', '2005', '2006', '2007', '2008',
- \ '2009', '200a', '200b', '200c', '200d', '202f',
- \ '205f', '2060', '3000', 'feff']
- call matchadd('Error', '\%u' . s:x)
- endfor
+ 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.
+ execute ' for l:x in l:spaces'
+ \ '| call matchadd("Error", "\%u" . l:x)'
+ \ '| endfor'
endif
endfunction
" Enable highlights for the current and all new windows. Thanks to bairui in
augroup END
endif
-
" Settings for specific filetypes.
" Haskell.
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.
+ autocmd InsertEnter * set noignorecase
+ autocmd InsertLeave * set ignorecase
+
" AFTER/FTPLUGIN AUTO COMMANDS
" Disable spell checking for files which don't need it.