" EDIT SETTINGS
" Enable automatic file detection, plugin and indention.
-filetype plugin indent on
+if has("autocmd")
+ filetype plugin indent on
+endif
" Use UTF-8 file encoding for all files.
set fileencodings=utf-8
set incsearch
" Activate syntax folding.
-set foldmethod=syntax
-set foldcolumn=2
-set foldlevel=99 " no folding at default
+if has("folding")
+ set foldmethod=syntax
+ set foldcolumn=2
+ set foldlevel=99 " no folding at default
+endif
" Only check for case if the searched word contains a capital character.
set ignorecase
" EDITOR SETTINGS
-" Don't use any modelines.
-set nomodeline
-
" When completing paths first use the longest path then display a list of all
" possible files.
set wildmode=longest,list
" MAPPINGS (except for plugins, see PLUGIN SETTINGS below)
" Use "," as my mapleader.
-let mapleader = ","
-let maplocalleader = ","
+if has("eval")
+ let mapleader = ","
+ let maplocalleader = ","
+endif
" Use <space> to move down a page and - to move up one like in mutt.
nnoremap <Space> <C-f>
map <Leader>se :set spelllang=en_us<CR>
map <Leader>sd :set spelllang=de_de<CR>
+" Add semicolon to the end of the line. Thanks to
+" http://www.van-laarhoven.org/vim/.vimrc for this idea and godlygeek in #vim
+" for an improved version which doesn't clobber any marks.
+nnoremap <silent> ; :call setline(line('.'), getline('.') . ';')<CR>
+
" I often type "W" instead of "w" when trying to save a file. Fix my mistake.
" Thanks to Tony Mechelynck <antoine.mechelynck@gmail.com> from the Vim
" mailing list for the commands.
endif
" Disable Apple style movements in MacVim.
-if has("gui_macvim")
+if has("gui_macvim") && has("eval")
let macvim_skip_cmd_opt_movement = 1
endif
" SYNTAX SETTINGS
" Activate syntax coloring.
-syntax enable
+if has("syntax")
+ syntax enable
" Highlight text longer then 78 characters. Thanks to Tony Mechelynck
" <antoine.mechelynck@gmail.com> from the Vim mailing list.
-if v:version >= 700
- 2match Todo /\%>78v./
-else
- match Todo /\%>78v./
+ if v:version >= 700
+ 2match Todo /\%>78v./
+ else
+ match Todo /\%>78v./
+ endif
endif
" Settings for the NERD commenter.
" Don't create any mappings I don't want to use.
-let NERDCreateDefaultMappings = 0
+if has("eval")
+ let NERDCreateDefaultMappings = 0
+endif
" Map toggle comment.
map <Leader><Leader> <plug>NERDCommenterToggle
-" Automatically save and the load the file state (stored in ~/.vim/view).
-autocmd BufWrite * mkview
-autocmd BufRead * loadview
+" AUTO COMMANDS
+
+" Use a custom auto group to prevent problems when the vimrc files is sourced
+" twice.
+if has("autocmd")
+ augroup vimrc
+ autocmd!
+
+" Use diff filetype for mercurial patches in patch queue.
+ autocmd BufReadPost */.hg/patches/* set filetype=diff
+
+ augroup END
+endif