-" vim: set ft=vim :
-version 7.1
-
" obtained from the output of :options, then postprocessed:
" d2}
" :%s/^ *[[:digit:]]\+/"""
" runtimepath
" list of directories used for runtime files and plugins
-" set rtp=/home/madduck/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim71,/usr/share/vim/vimfiles/after,/home/madduck/.vim/after
+" set rtp=/home/madduck/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vimcurrent,/usr/share/vim/vimfiles/after,/home/madduck/.vim/after
" helpfile
" name of the main help file
-" set hf=/usr/share/vim/vim71/doc/help.txt
+" set hf=/usr/share/vim/vimcurrent/doc/help.txt
""" moving around, searching and patterns
" 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{,4}|[ivx]{,4})[]:.)}/])+|[-\*.·→+])\s+'
" formatexpr
" expression used for "gq" to format lines
" Preserve kind of whitespace when changing indent
" (local to buffer)
" set nopi pi
-set pi
+""" set pi this ABORTS < 1:7.1-135+1 (see #446268)
+if has('patch073')
+ set pi
+endif
" lisp
" enable lisp mode
" 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
+
+let g:netrw_home="$VARDIR/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
+" 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
+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
-
-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
+" flag trailing spaces as error only when not inserting
+augroup tsperrorinsert
+ autocmd InsertEnter * match none /\s\+$/
+ autocmd InsertLeave * match Error /\s\+$/
+augroup end
" this isn't windows, screw the F1->help key
-"map <F1> <Esc>
-"imap <F1> <Esc>
-"vmap <F1> <Esc>
+map <F1> <Esc>
+imap <F1> <Esc>
+vmap <F1> <Esc>
" ignore Q -- Ex mode
map Q <Esc>
-imap <Leader>-- –
-imap <Leader>--- —
-imap <Leader>... …
-
-iab sgf Sehr geehrte Frau
-iab sgh Sehr geehrter Herr
-iab lf Liebe Frau
-iab lh Lieber Herr
-iab sgdh Sehr geehrte Damen und Herren
-iab twimc To Whom It May Concern
-iab lg liebe Grüsse
-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
+let mapleader = ';'
+let maplocalleader = ';'
+
+" replace fake tab chars with real ones
+map <Leader>ft :%s,⇝·*, ,g<CR>:nohlsearch<CR>``
+" replace fake spaces with real ones
+map <Leader>fs :%s,·, ,g<CR>:nohlsearch<CR>``
+
+function WhatHighlight()
+ echon 'hi<' . synIDattr(synID(line('.'),col('.'),1),'name') . '> '
+ echon 'trans<' . synIDattr(synID(line('.'),col('.'),0),'name') . '> '
+ echon 'lo<' . synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') . '>'
+endfunction
+
+map <Leader>sy :call WhatHighlight()<CR>
+
+map <Leader>/ :nohlsearch<CR>
+
+iab <Leader>→ ➬
+
+try
+ execute pathogen#infect()
+catch
+ "echo "Pathogen not installed"
+endtry
+
+let g:is_posix = 1
+
+let g:ycm_add_preview_to_completeopt="popup"
+let g:ycm_autoclose_preview_window_after_completion = 1
+
+let g:UltiSnipsExpandTrigger = "<leader><tab>"
+let g:UltiSnipsJumpForwardTrigger = "<c-]>"
+let g:UltiSnipsJumpBackwardTrigger = "<c-[>"
+map <F10> :UltiSnipsEdit<cr>
+imap <F10> <esc>:UltiSnipsEdit<cr>
let &cpo=s:cpo_save
unlet s:cpo_save