" 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-=~/.vim
-set rtp-=~/.vim/after
-set rtp^=~/.etc/vim
-set rtp+=~/.etc/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*
+set flp=^\\s*\\d\\+[\\]:.)}]\\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
" 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,f1,\"1000,:20,/20,%,!,h,n$VARDIR/vim/viminfo
" bufhidden
" what happens with a buffer when it's no longer in a window
autocmd BufNewFile,BufRead /home/madduck/debian/pkg/logcheck/*/rulefiles/linux/*.d*/* 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
+
+" 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>
-"imap <F1> <Esc>
-"vmap <F1> <Esc>
+map <F1> <Esc>
+imap <F1> <Esc>
+vmap <F1> <Esc>
" ignore Q -- Ex mode
map Q <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>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 lf Liebe Frau
iab mvbg Mit verbandsbrüderlichen Grüßen
iab vd Vielen Dank
iab vld Vielen lieben Dank
+iab email e-mail
+iab emails e-mails
+iab Email E-mail
+iab Emails E-mails
let &cpo=s:cpo_save
unlet s:cpo_save
+
+source $HOME/.vim/macros/table.vim
+
+let g:SuperTabMappingForward = '<nul>'
+let g:SuperTabMappingBackward = '<s-nul>'