-" vim: set ft=vim :
-version 7.1
-
" obtained from the output of :options, then postprocessed:
" d2}
" :%s/^ *[[:digit:]]\+/"""
" list of flags specifying which commands wrap to another line
" (local to window)
" set ww=
-set ww=b,s,[,],~
+set ww=b,s,[,<,>,],~
" startofline
" many jump commands move the cursor to the first non-blank
" wrap long lines at a character in 'breakat'
" (local to window)
" set nolbr lbr
-set linebreak
+" does not work with autocmd set list/nolist below
" breakat
" which characters might cause a line break
" pattern to recognize a numbered list
" (local to buffer)
" set flp=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
+let &flp='^\v\s*((\a|\d+)[\]:.)}\t/-]\s|[-\*.·→+]\s)\s*'
" formatexpr
" expression used for "gq" to format lines
" foldlevelstart
" value for 'foldlevel' when starting to edit a file
" set fdls=-1
-set fdls=1
" foldcolumn
" width of the column used to indicate folds
" folding type: "manual", "indent", "expr", "marker" or "syntax"
" (local to window)
" set fdm=manual
+set fdm=marker
" foldexpr
" expression used when 'foldmethod' is "expr"
" directory
" list of directories for the swap file
" set dir=.,/home/madduck/tmp,/var/tmp,/tmp
-set dir=.,~/tmp//,/var/tmp//,/tmp//
+set dir=.,$TMPDIR//,/var/tmp//,/tmp//
" swapfile
" use a swap file for this buffer
" swapsync
" "sync", "fsync" or empty; how to flush a swap file to disk
" set sws=fsync
+set sws=
" updatecount
" number of characters typed to cause a swap file update
" updatetime
" time in msec after which the swap file will be updated
" set ut=4000
+set ut=10000
" maxmem
" maximum amount of memory in Kbyte used for one buffer
" wildmode
" specifies how command line completion works
" set wim=full
-set wim=list
+set wim=list:full
" suffixes
" list of file name extensions that have a lower priority
" viewdir
" directory where to store files with :mkview
" set vdir=/home/madduck/.vim/view
-set vdir=$VAR/vim/view
+set vdir=$VARDIR/vim/view
" viminfo
" list that specifies what to write in the viminfo file
" set vi=
-set vi='1000,f1,\"1000,:20,/20,%,!,h,n$VAR/vim/viminfo
+set vi=<1000,'1000,\"1000,:100,/100,@100,f1,%,!,h,n$VARDIR/vim/viminfo
" bufhidden
" what happens with a buffer when it's no longer in a window
" set to "msg" to see all error messages
" set debug=
+if &cp | set nocp | endif
+let s:cpo_save=&cpo
+set cpo&vim
+
filetype plugin indent on
syntax on
colorscheme madduck
-autocmd BufNewFile,BufRead /etc/logcheck/*.d*/* set tw=0
-autocmd BufNewFile,BufRead /home/madduck/debian/pkg/logcheck/*/rulefiles/linux/*.d*/* set tw=0
-
-" display the git-diff --cached in window below commit
-autocmd FileType gitcommit DiffGitCached | wincmd J
+" leave the w mark whenever a file is written
+autocmd BufWrite * normal mw
-" jump to last known position in file (:he last-position-jump)
-autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"zz" | endif
+" leave the i mark whenever we go idle (after updatetime)
+"augroup markidle
+ "autocmd CursorHold * normal mi
+ "autocmd CursorHoldI * normal mi "DISABLED while broken (shifts left)
+"augroup end
" disable list mode when inserting stuff, otherwise keep it enabled, it's
-" useful
+" useful (see also setting lcs)
augroup listinsert
autocmd InsertEnter * set nolist
autocmd InsertLeave * set list
augroup end
-
-if &cp | set nocp | endif
-let s:cpo_save=&cpo
-set cpo&vim
+" flag trailing spaces as error only when not inserting
+augroup tsperrorinsert
+ autocmd InsertEnter * match none /\s\+$/
+ autocmd InsertLeave * match Error /\s\+$/
+augroup end
" treat wrapped lines normally
-map k gk
-map <Up> gk
-map j gj
-map <Down> gj
+nnoremap k gk
+nnoremap <Up> gk
+inoremap <Up> <C-\><C-o>gk
+nnoremap j gj
+nnoremap <Down> gj
+inoremap <Down> <C-\><C-o>gj
" this isn't windows, screw the F1->help key
map <F1> <Esc>
let mapleader = ';'
let maplocalleader = ';'
-imap <Leader>-- –
-imap <Leader>--- —
-imap <Leader>... …
-
" replace fake tab chars with real ones
map <Leader>ft :%s,⇝·*, ,g<CR>:nohlsearch<CR>``
" replace fake spaces with real ones
map <Leader>/ :nohlsearch<CR>
+omap [{ :normal {jj<CR>
+nmap [{ :normal {jj<CR>
+omap ]} :normal }kk<CR>
+nmap ]} :normal }kk<CR>
+
iab sgf Sehr geehrte Frau
iab sgh Sehr geehrter Herr
+iab sghn Sehr geehrte Herren
iab lf Liebe Frau
iab lh Lieber Herr
iab sgdh Sehr geehrte Damen und Herren
iab Lg Liebe Grüsse
iab fg Freundliche Grüsse
iab mfg Mit freundlichen Grüssen
-iab mbbg Mit bundesbrüderlichen Grüßen
-iab mvbg Mit verbandsbrüderlichen Grüßen
-iab vd Vielen Dank
-iab vld Vielen lieben Dank
+iab mbg Mit den besten Grüssen
+iab hg Herzliche Grüsse
+iab mhg Mit herzlichen Grüssen
+iab mbbg Mit bundesbrüderlichen Grüssen
+iab mvbg Mit verbandsbrüderlichen Grüssen
+
+let g:is_posix = 1
let &cpo=s:cpo_save
unlet s:cpo_save