" 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
" (local to buffer)
" set nopi pi
""" set pi this ABORTS < 1:7.1-135+1 (see #446268)
-if has('patch135')
+if has('patch073')
set pi
endif
" 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
autocmd BufNewFile,BufRead /etc/logcheck/*.d*/* set tw=0
autocmd BufNewFile,BufRead /home/madduck/debian/pkg/logcheck/*/rulefiles/linux/*.d*/* set tw=0
+autocmd BufNewFile,BufRead /home/madduck/.tmp/dir????? set tw=0
" jump to last known position in file (:he last-position-jump)
-autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"zz" | endif
+autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"zz" | endif
+
+" leave the w mark whenever a file is written
+autocmd BufWrite * normal mw
+
+" keep an extra backup of vimperator's ctrl-i
+autocmd BufWritePost */vimperator-*.tmp exe 'write ' . fnameescape((exists('$TMPDIR') ? $TMPDIR : '/tmp') . '/vimperator.ctrl-i.' . strftime('%Y.%m.%d.%H%M%S'))
+autocmd BufWritePost */pentadactyl.*.txt exe 'write ' . fnameescape((exists('$TMPDIR') ? $TMPDIR : '/tmp') . '/pentadactyl.ctrl-i.' . strftime('%Y.%m.%d.%H%M%S'))
+
+autocmd BufRead *.vcf set filetype=vcard
+
+" 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
+" flag trailing spaces as error only when not inserting
+augroup tsperrorinsert
+ autocmd InsertEnter * match none /\s\+$/
+ autocmd InsertLeave * match Error /\s\+$/
+augroup end
if &cp | set nocp | endif
let s:cpo_save=&cpo
set cpo&vim
" 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>
" replace fake tab chars with real ones
map <Leader>ft :%s,⇝·*, ,g<CR>:nohlsearch<CR>``
" replace fake spaces with real ones
-map <Leader>ft :%s,·, ,g<CR>:nohlsearch<CR>``
+map <Leader>fs :%s,·, ,g<CR>:nohlsearch<CR>``
map <Leader>sy :echo synIDattr(synID(line("."), col("."), 1), "name")<CR>
+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 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
iab vd Vielen Dank
iab vld Vielen lieben Dank
+iab vhd Vielen herzlichen Dank
+iab email e-mail
+iab emails e-mails
+iab Email E-mail
+iab Emails E-mails
+iab mk Martin Krafft
+iab mfk Martin F. Krafft
+iab addr Hanfstaenglstraße 15\rD–80638 München
let &cpo=s:cpo_save
unlet s:cpo_save
+
+source $HOME/.vim/macros/table.vim
+
+let g:SuperTabMappingForward = '<nul>'
+let g:SuperTabMappingBackward = '<s-nul>'
+
+let g:is_posix = 1