--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.inputrc Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,1 @@
+set editing-mode vi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.perltidyrc Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,3 @@
+--paren-tightness=2
+--square-bracket-tightness=2
+--nospace-for-semicolon
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/.VimballRecord Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,1 @@
+DrawIt.vba: call delete('/home/is/heiko/.vim/plugin/DrawItPlugin.vim')|call delete('/home/is/heiko/.vim/plugin/cecutil.vim')|call delete('/home/is/heiko/.vim/autoload/DrawIt.vim')|call delete('/home/is/heiko/.vim/doc/DrawIt.txt')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/.netrwhist Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,6 @@
+let g:netrw_dirhistmax =10
+let g:netrw_dirhist_cnt =4
+let g:netrw_dirhist_1='/tmp/x'
+let g:netrw_dirhist_2='/tmp'
+let g:netrw_dirhist_3='/home/heiko/xxx'
+let g:netrw_dirhist_4='/home/heiko/itelli/x'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/autoload/DrawIt.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,1511 @@
+" DrawIt.vim: a simple way to draw things in Vim -- just put this file in
+"
+" Maintainer: Charles E. Campbell, Jr. (Charles.E.Campbell.1@gsfc.nasa.gov)
+" Authors: Charles E. Campbell, Jr. (NdrchipO@ScampbellPfamily.AbizM - NOSPAM)
+" Sylvain Viart (molo@multimania.com)
+" Version: 7
+" Date: Apr 10, 2006
+"
+" Quick Setup: {{{1
+" tar -oxvf DrawIt.tar
+" Should put DrawItPlugin.vim in your .vim/plugin directory,
+" put DrawIt.vim in your .vim/autoload directory
+" put DrawIt.txt in your .vim/doc directory.
+" Then, use \di to start DrawIt,
+" \ds to stop Drawit, and
+" draw by simply moving about using the cursor keys.
+"
+" You may also use visual-block mode to select endpoints and
+" draw lines, arrows, and ellipses.
+"
+" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" DrawIt.vim is provided *as is* and comes with no warranty
+" of any kind, either expressed or implied. By using this
+" plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
+"
+" Required: THIS SCRIPT REQUIRES VIM 7.0 (or later) {{{1
+" GetLatestVimScripts: 40 1 :AutoInstall: DrawIt.vim
+" GetLatestVimScripts: 1066 1 cecutil.vim
+"
+" Woe to her who is rebellious and polluted, the oppressing {{{1
+" city! She didn't obey the voice. She didn't receive correction.
+" She didn't trust in Yahweh. She didn't draw near to her God. (Zeph 3:1,2 WEB)
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if &cp || exists("g:loaded_DrawIt")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+" ---------------------------------------------------------------------
+" Script Variables: {{{1
+if !exists("s:saveposn_count")
+ let s:saveposn_count= 0
+endif
+let g:loaded_DrawIt= "v7"
+
+" =====================================================================
+" Drawit Functions: (by Charles E. Campbell, Jr.) {{{1
+" =====================================================================
+
+" ---------------------------------------------------------------------
+" StartDrawIt: this function maps the cursor keys, sets up default {{{2
+" drawing characters, and makes some settings
+fun! DrawIt#StartDrawIt()
+" call Dfunc("StartDrawIt()")
+
+ " report on [DrawIt] mode {{{3
+ if exists("b:dodrawit") && b:dodrawit == 1
+ " already in DrawIt mode
+ if exists("mapleader") && mapleader != ""
+ let usermaplead= mapleader
+ else
+ let usermaplead= '\'
+ endif
+ echo "[DrawIt] (already on, use ".usermaplead."ds to stop)"
+" call Dret("StartDrawIt")
+ return
+ endif
+ let b:dodrawit= 1
+
+ " indicate in DrawIt mode
+ echo "[DrawIt]"
+
+ " turn on mouse {{{3
+ if !exists("b:drawit_keep_mouse")
+ let b:drawit_keep_mouse= &mouse
+ endif
+ set mouse=a
+
+ " set up DrawIt commands
+ com! -nargs=1 -range SetBrush <line1>,<line2>call DrawIt#SetBrush(<q-args>)
+
+ " set up default drawing characters {{{3
+ if !exists("b:di_vert")
+ let b:di_vert= "|"
+ endif
+ if !exists("b:di_horiz")
+ let b:di_horiz= "-"
+ endif
+ if !exists("b:di_plus")
+ let b:di_plus= "+"
+ endif
+ if !exists("b:di_upright") " also downleft
+ let b:di_upright= "/"
+ endif
+ if !exists("b:di_upleft") " also downright
+ let b:di_upleft= "\\"
+ endif
+ if !exists("b:di_cross")
+ let b:di_cross= "X"
+ endif
+
+ " set up initial DrawIt behavior (as opposed to erase behavior)
+ let b:di_erase= 0
+
+ " option recording {{{3
+ let b:di_aikeep = &ai
+ let b:di_cinkeep = &cin
+ let b:di_cpokeep = &cpo
+ let b:di_etkeep = &et
+ let b:di_fokeep = &fo
+ let b:di_gdkeep = &gd
+ let b:di_gokeep = &go
+ let b:di_magickeep = &magic
+ let b:di_remapkeep = &remap
+ let b:di_repkeep = &report
+ let b:di_sikeep = &si
+ let b:di_stakeep = &sta
+ let b:di_vekeep = &ve
+ set cpo&vim
+ set nocin noai nosi nogd sta et ve="" report=10000
+ set go-=aA
+ set fo-=a
+ set remap magic
+
+ " save and unmap user maps {{{3
+ let b:lastdir = 1
+ if exists("mapleader")
+ let usermaplead = mapleader
+ else
+ let usermaplead = "\\"
+ endif
+ call SaveUserMaps("n","","><^v","DrawIt")
+ call SaveUserMaps("v",usermaplead,"abeflsy","DrawIt")
+ call SaveUserMaps("n",usermaplead,"h><v^","DrawIt")
+ call SaveUserMaps("n","","<left>","DrawIt")
+ call SaveUserMaps("n","","<right>","DrawIt")
+ call SaveUserMaps("n","","<up>","DrawIt")
+ call SaveUserMaps("n","","<down>","DrawIt")
+ call SaveUserMaps("n","","<left>","DrawIt")
+ call SaveUserMaps("n","","<s-right>","DrawIt")
+ call SaveUserMaps("n","","<s-up>","DrawIt")
+ call SaveUserMaps("n","","<s-down>","DrawIt")
+ call SaveUserMaps("n","","<space>","DrawIt")
+ call SaveUserMaps("n","","<home>","DrawIt")
+ call SaveUserMaps("n","","<end>","DrawIt")
+ call SaveUserMaps("n","","<pageup>","DrawIt")
+ call SaveUserMaps("n","","<pagedown>","DrawIt")
+ call SaveUserMaps("n","","<leftmouse>","DrawIt")
+ call SaveUserMaps("n","","<middlemouse>","DrawIt")
+ call SaveUserMaps("n","","<rightmouse>","DrawIt")
+ call SaveUserMaps("n","","<leftdrag>","DrawIt")
+ call SaveUserMaps("n","","<s-leftmouse>","DrawIt")
+ call SaveUserMaps("n","","<s-leftdrag>","DrawIt")
+ call SaveUserMaps("n","","<s-leftrelease>","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pa","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pb","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pc","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pd","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pe","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pf","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pg","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ph","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pi","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pj","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pk","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pl","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pm","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pn","DrawIt")
+ call SaveUserMaps("n",usermaplead,"po","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pp","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pq","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pr","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ps","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pt","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pu","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pv","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pw","DrawIt")
+ call SaveUserMaps("n",usermaplead,"px","DrawIt")
+ call SaveUserMaps("n",usermaplead,"py","DrawIt")
+ call SaveUserMaps("n",usermaplead,"pz","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ra","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rb","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rc","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rd","DrawIt")
+ call SaveUserMaps("n",usermaplead,"re","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rf","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rg","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rh","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ri","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rj","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rk","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rl","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rm","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rn","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ro","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rp","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rq","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rr","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rs","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rt","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ru","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rv","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rw","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rx","DrawIt")
+ call SaveUserMaps("n",usermaplead,"ry","DrawIt")
+ call SaveUserMaps("n",usermaplead,"rz","DrawIt")
+ if exists("g:drawit_insertmode") && g:drawit_insertmode
+ call SaveUserMaps("i","","<left>","DrawIt")
+ call SaveUserMaps("i","","<right>","DrawIt")
+ call SaveUserMaps("i","","<up>","DrawIt")
+ call SaveUserMaps("i","","<down>","DrawIt")
+ call SaveUserMaps("i","","<left>","DrawIt")
+ call SaveUserMaps("i","","<s-right>","DrawIt")
+ call SaveUserMaps("i","","<s-up>","DrawIt")
+ call SaveUserMaps("i","","<s-down>","DrawIt")
+ call SaveUserMaps("i","","<home>","DrawIt")
+ call SaveUserMaps("i","","<end>","DrawIt")
+ call SaveUserMaps("i","","<pageup>","DrawIt")
+ call SaveUserMaps("i","","<pagedown>","DrawIt")
+ call SaveUserMaps("i","","<leftmouse>","DrawIt")
+ endif
+ call SaveUserMaps("n","",":\<c-v>","DrawIt")
+
+ " DrawIt maps (Charles Campbell) {{{3
+ nmap <silent> <left> :set lz<CR>:silent! call <SID>DrawLeft()<CR>:set nolz<CR>
+ nmap <silent> <right> :set lz<CR>:silent! call <SID>DrawRight()<CR>:set nolz<CR>
+ nmap <silent> <up> :set lz<CR>:silent! call <SID>DrawUp()<CR>:set nolz<CR>
+ nmap <silent> <down> :set lz<CR>:silent! call <SID>DrawDown()<CR>:set nolz<CR>
+ nmap <silent> <s-left> :set lz<CR>:silent! call <SID>MoveLeft()<CR>:set nolz<CR>
+ nmap <silent> <s-right> :set lz<CR>:silent! call <SID>MoveRight()<CR>:set nolz<CR>
+ nmap <silent> <s-up> :set lz<CR>:silent! call <SID>MoveUp()<CR>:set nolz<CR>
+ nmap <silent> <s-down> :set lz<CR>:silent! call <SID>MoveDown()<CR>:set nolz<CR>
+ nmap <silent> <space> :set lz<CR>:silent! call <SID>DrawErase()<CR>:set nolz<CR>
+ nmap <silent> > :set lz<CR>:silent! call <SID>DrawSpace('>',1)<CR>:set nolz<CR>
+ nmap <silent> < :set lz<CR>:silent! call <SID>DrawSpace('<',2)<CR>:set nolz<CR>
+ nmap <silent> ^ :set lz<CR>:silent! call <SID>DrawSpace('^',3)<CR>:set nolz<CR>
+ nmap <silent> v :set lz<CR>:silent! call <SID>DrawSpace('v',4)<CR>:set nolz<CR>
+ nmap <silent> <home> :set lz<CR>:silent! call <SID>DrawSlantUpLeft()<CR>:set nolz<CR>
+ nmap <silent> <end> :set lz<CR>:silent! call <SID>DrawSlantDownLeft()<CR>:set nolz<CR>
+ nmap <silent> <pageup> :set lz<CR>:silent! call <SID>DrawSlantUpRight()<CR>:set nolz<CR>
+ nmap <silent> <pagedown> :set lz<CR>:silent! call <SID>DrawSlantDownRight()<CR>:set nolz<CR>
+ nmap <silent> <Leader>> :set lz<CR>:silent! call <SID>DrawFatRArrow()<CR>:set nolz<CR>
+ nmap <silent> <Leader>< :set lz<CR>:silent! call <SID>DrawFatLArrow()<CR>:set nolz<CR>
+ nmap <silent> <Leader>^ :set lz<CR>:silent! call <SID>DrawFatUArrow()<CR>:set nolz<CR>
+ nmap <silent> <Leader>v :set lz<CR>:silent! call <SID>DrawFatDArrow()<CR>:set nolz<CR>
+ nmap <silent> <Leader>f :call <SID>Flood()<cr>
+
+ " Set up insertmode maps {{{3
+ if exists("g:drawit_insertmode") && g:drawit_insertmode
+ imap <silent> <left> <Esc><left>a
+ imap <silent> <right> <Esc><right>a
+ imap <silent> <up> <Esc><up>a
+ imap <silent> <down> <Esc><down>a
+ imap <silent> <left> <Esc><left>a
+ imap <silent> <s-right> <Esc><s-right>a
+ imap <silent> <s-up> <Esc><s-up>a
+ imap <silent> <s-down> <Esc><s-down>a
+ imap <silent> <home> <Esc><home>a
+ imap <silent> <end> <Esc><end>a
+ imap <silent> <pageup> <Esc><pageup>a
+ imap <silent> <pagedown> <Esc><pagedown>a
+ endif
+
+ " set up drawing mode mappings (Sylvain Viart) {{{3
+" nnoremap <silent> <c-v> :call <SID>LeftStart()<CR><c-v>
+ nnoremap <silent> <c-v> :call <SID>LeftStart()<CR><c-v>
+ vmap <silent> <Leader>a :<c-u>call <SID>Call_corner('Arrow')<CR>
+ vmap <silent> <Leader>b :<c-u>call <SID>Call_corner('Box')<cr>
+ nmap <Leader>h :call <SID>Holer()<cr>
+ vmap <silent> <Leader>l :<c-u>call <SID>Call_corner('DrawPlainLine')<CR>
+ vmap <silent> <Leader>s :<c-u>call <SID>Spacer(line("'<"), line("'>"))<cr>
+
+ " set up drawing mode mappings (Charles Campbell) {{{3
+ " \pa ... \pb : blanks are transparent
+ " \ra ... \rb : blanks copy over
+ vmap <silent> <Leader>e :<c-u>call <SID>Call_corner('Ellipse')<CR>
+
+ let allreg= "abcdefghijklmnopqrstuvwxyz"
+ while strlen(allreg) > 0
+ let ireg= strpart(allreg,0,1)
+ exe "nmap <silent> <Leader>p".ireg.' :<c-u>set lz<cr>:silent! call <SID>PutBlock("'.ireg.'",0)<cr>:set nolz<cr>'
+ exe "nmap <silent> <Leader>r".ireg.' :<c-u>set lz<cr>:silent! call <SID>PutBlock("'.ireg.'",1)<cr>:set nolz<cr>'
+ let allreg= strpart(allreg,1)
+ endwhile
+
+ " mouse maps (Sylvain Viart) {{{3
+ " start visual-block with leftmouse
+ nnoremap <silent> <leftmouse> <leftmouse>:call <SID>LeftStart()<CR><c-v>
+ vnoremap <silent> <rightmouse> <leftmouse>:<c-u>call <SID>RightStart(1)<cr>
+ vnoremap <silent> <middlemouse> <leftmouse>:<c-u>call <SID>RightStart(0)<cr>
+
+ " mouse maps (Charles Campbell) {{{3
+ " Draw with current brush
+ nnoremap <silent> <s-leftmouse> <leftmouse>:call <SID>SLeftStart()<CR><c-v>
+
+ " Menu support {{{3
+ if has("gui_running") && has("menu") && &go =~ 'm'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Stop\ \ DrawIt<tab>\\ds <Leader>ds'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Toggle\ Erase\ Mode<tab><space> <space>'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Arrow<tab>\\a <Leader>a'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Box<tab>\\b <Leader>b'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Ellipse<tab>\\e <Leader>e'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Flood<tab>\\e <Leader>f'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Line<tab>\\l <Leader>l'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Make\ Blank\ Zone<tab>\\h <Leader>h'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Append\ Blanks<tab>\\s <Leader>s'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Start\ DrawIt'
+ endif
+" call Dret("StartDrawIt")
+endfun
+
+" ---------------------------------------------------------------------
+" StopDrawIt: this function unmaps the cursor keys and restores settings {{{2
+fun! DrawIt#StopDrawIt()
+" call Dfunc("StopDrawIt()")
+
+ " report on [DrawIt off] mode {{{3
+ if !exists("b:dodrawit")
+ echo "[DrawIt off]"
+" call Dret("StopDrawIt")
+ return
+ endif
+
+ " restore mouse {{{3
+ if exists("b:drawit_keep_mouse")
+ let &mouse= b:drawit_keep_mouse
+ unlet b:drawit_keep_mouse
+ endif
+ unlet b:dodrawit
+ echo "[DrawIt off]"
+
+ if exists("b:drawit_holer_used")
+ " clean up trailing white space
+ call s:SavePosn()
+ silent! %s/\s\+$//e
+ unlet b:drawit_holer_used
+ call s:RestorePosn()
+ endif
+
+ " remove drawit commands {{{3
+ delc SetBrush
+
+ " insure that erase mode is off {{{3
+ " (thanks go to Gary Johnson for this)
+ if b:di_erase == 1
+ call s:DrawErase()
+ endif
+
+ " restore user map(s), if any {{{3
+ call RestoreUserMaps("DrawIt")
+
+ " restore user's options {{{3
+ let &ai = b:di_aikeep
+ let &cin = b:di_cinkeep
+ let &cpo = b:di_cpokeep
+ let &et = b:di_etkeep
+ let &fo = b:di_fokeep
+ let &gd = b:di_gdkeep
+ let &go = b:di_gokeep
+ let &magic = b:di_magickeep
+ let &remap = b:di_remapkeep
+ let &report = b:di_repkeep
+ let &si = b:di_sikeep
+ let &sta = b:di_stakeep
+ let &ve = b:di_vekeep
+ unlet b:di_aikeep
+ unlet b:di_cinkeep
+ unlet b:di_cpokeep
+ unlet b:di_etkeep
+ unlet b:di_fokeep
+ unlet b:di_gdkeep
+ unlet b:di_gokeep
+ unlet b:di_magickeep
+ unlet b:di_remapkeep
+ unlet b:di_repkeep
+ unlet b:di_sikeep
+ unlet b:di_stakeep
+ unlet b:di_vekeep
+
+ " DrChip menu support: {{{3
+ if has("gui_running") && has("menu") && &go =~ 'm'
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Start\ DrawIt<tab>\\di <Leader>di'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Stop\ \ DrawIt'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Toggle\ Erase\ Mode'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Arrow'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Box'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Ellipse'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Flood'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Draw\ Line'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Make\ Blank\ Zone'
+ exe 'unmenu '.g:DrChipTopLvlMenu.'DrawIt.Append\ Blanks'
+ endif
+" call Dret("StopDrawIt")
+endfun
+
+" ---------------------------------------------------------------------
+" SetDrawIt: this function allows one to change the drawing characters {{{2
+fun! SetDrawIt(di_vert,di_horiz,di_plus,di_upleft,di_upright,di_cross)
+" call Dfunc("SetDrawIt(vert<".a:di_vert."> horiz<".a:di_horiz."> plus<".a:di_plus."> upleft<".a:di_upleft."> upright<".a:di_upright."> cross<".a:di_cross.">)")
+ let b:di_vert = a:di_vert
+ let b:di_horiz = a:di_horiz
+ let b:di_plus = a:di_plus
+ let b:di_upleft = a:di_upleft
+ let b:di_upright = a:di_upright
+ let b:di_cross = a:di_cross
+" call Dret("SetDrawIt")
+endfun
+
+" =====================================================================
+" DrawLeft: {{{2
+fun! s:DrawLeft()
+" call Dfunc("DrawLeft()")
+ let curline = getline(".")
+ let curcol = col(".")
+ let b:lastdir = 2
+
+ if curcol > 0
+ let curchar= strpart(curline,curcol-1,1)
+
+ " replace
+ if curchar == b:di_vert || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_horiz
+ endif
+
+ " move and replace
+ if curcol >= 2
+ call s:MoveLeft()
+ let curchar= strpart(curline,curcol-2,1)
+ if curchar == b:di_vert || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_horiz
+ endif
+ endif
+ endif
+" call Dret("DrawLeft")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawRight: {{{2
+fun! s:DrawRight()
+" call Dfunc("DrawRight()")
+ let curline = getline(".")
+ let curcol = col(".")
+ let b:lastdir = 1
+
+ " replace
+ if curcol == col("$")
+ exe "norm! a".b:di_horiz."\<Esc>"
+ else
+ let curchar= strpart(curline,curcol-1,1)
+ if curchar == b:di_vert || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_horiz
+ endif
+ endif
+
+ " move and replace
+ call s:MoveRight()
+ if curcol == col("$")
+ exe "norm! i".b:di_horiz."\<Esc>"
+ else
+ let curchar= strpart(curline,curcol,1)
+ if curchar == b:di_vert || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_horiz
+ endif
+ endif
+" call Dret("DrawRight")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawUp: {{{2
+fun! s:DrawUp()
+" call Dfunc("DrawUp()")
+ let curline = getline(".")
+ let curcol = col(".")
+ let b:lastdir = 3
+
+ " replace
+ if curcol == 1 && col("$") == 1
+ exe "norm! i".b:di_vert."\<Esc>"
+ else
+ let curchar= strpart(curline,curcol-1,1)
+ if curchar == b:di_horiz || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_vert
+ endif
+ endif
+
+ " move and replace/insert
+ call s:MoveUp()
+ let curline= getline(".")
+ let curchar= strpart(curline,curcol-1,1)
+
+ if curcol == 1 && col("$") == 1
+ exe "norm! i".b:di_vert."\<Esc>"
+ elseif curchar == b:di_horiz || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_vert
+ endif
+ endif
+" call Dret("DrawUp")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawDown: {{{2
+fun! s:DrawDown()
+" call Dfunc("DrawDown()")
+ let curline = getline(".")
+ let curcol = col(".")
+ let b:lastdir = 4
+
+ " replace
+ if curcol == 1 && col("$") == 1
+ exe "norm! i".b:di_vert."\<Esc>"
+ else
+ let curchar= strpart(curline,curcol-1,1)
+ if curchar == b:di_horiz || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_vert
+ endif
+ endif
+
+ " move and replace/insert
+ call s:MoveDown()
+ let curline= getline(".")
+ let curchar= strpart(curline,curcol-1,1)
+ if curcol == 1 && col("$") == 1
+ exe "norm! i".b:di_vert."\<Esc>"
+ elseif curchar == b:di_horiz || curchar == b:di_plus
+ exe "norm! r".b:di_plus
+ else
+ exe "norm! r".b:di_vert
+ endif
+" call Dret("DrawDown")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawErase: toggle [DrawIt on] and [DrawIt erase] modes {{{2
+fun! s:DrawErase()
+" call Dfunc("DrawErase() b:di_erase=".b:di_erase)
+ if b:di_erase == 0
+ let b:di_erase= 1
+ echo "[DrawIt erase]"
+ let b:di_vert_save = b:di_vert
+ let b:di_horiz_save = b:di_horiz
+ let b:di_plus_save = b:di_plus
+ let b:di_upright_save = b:di_upright
+ let b:di_upleft_save = b:di_upleft
+ let b:di_cross_save = b:di_cross
+ call SetDrawIt(' ',' ',' ',' ',' ',' ')
+ else
+ let b:di_erase= 0
+ echo "[DrawIt]"
+ call SetDrawIt(b:di_vert_save,b:di_horiz_save,b:di_plus_save,b:di_upleft_save,b:di_upright_save,b:di_cross_save)
+ endif
+" call Dret("DrawErase")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawSpace: clear character and move right {{{2
+fun! s:DrawSpace(chr,dir)
+" call Dfunc("DrawSpace(chr<".a:chr."> dir<".a:dir.">)")
+ let curcol= col(".")
+
+ " replace current location with arrowhead/space
+ if curcol == col("$")-1
+ exe "norm! r".a:chr
+ else
+ exe "norm! r".a:chr
+ endif
+
+ if a:dir == 0
+ let dir= b:lastdir
+ else
+ let dir= a:dir
+ endif
+
+ " perform specified move
+ if dir == 1
+ call s:MoveRight()
+ elseif dir == 2
+ call s:MoveLeft()
+ elseif dir == 3
+ call s:MoveUp()
+ else
+ call s:MoveDown()
+ endif
+" call Dret("DrawSpace")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawSlantDownLeft: / {{{2
+fun! s:DrawSlantDownLeft()
+" call Dfunc("DrawSlantDownLeft()")
+ call s:ReplaceDownLeft() " replace
+ call s:MoveDown() " move
+ call s:MoveLeft() " move
+ call s:ReplaceDownLeft() " replace
+" call Dret("DrawSlantDownLeft")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawSlantDownRight: \ {{{2
+fun! s:DrawSlantDownRight()
+" call Dfunc("DrawSlantDownRight()")
+ call s:ReplaceDownRight() " replace
+ call s:MoveDown() " move
+ call s:MoveRight() " move
+ call s:ReplaceDownRight() " replace
+" call Dret("DrawSlantDownRight")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawSlantUpLeft: \ {{{2
+fun! s:DrawSlantUpLeft()
+" call Dfunc("DrawSlantUpLeft()")
+ call s:ReplaceDownRight() " replace
+ call s:MoveUp() " move
+ call s:MoveLeft() " move
+ call s:ReplaceDownRight() " replace
+" call Dret("DrawSlantUpLeft")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawSlantUpRight: / {{{2
+fun! s:DrawSlantUpRight()
+" call Dfunc("DrawSlantUpRight()")
+ call s:ReplaceDownLeft() " replace
+ call s:MoveUp() " move
+ call s:MoveRight() " replace
+ call s:ReplaceDownLeft() " replace
+" call Dret("DrawSlantUpRight")
+endfun
+
+" ---------------------------------------------------------------------
+" MoveLeft: {{{2
+fun! s:MoveLeft()
+" call Dfunc("MoveLeft()")
+ norm! h
+ let b:lastdir= 2
+" call Dret("MoveLeft : b:lastdir=".b:lastdir)
+endfun
+
+" ---------------------------------------------------------------------
+" MoveRight: {{{2
+fun! s:MoveRight()
+" call Dfunc("MoveRight()")
+ if col(".") >= col("$") - 1
+ exe "norm! A \<Esc>"
+ else
+ norm! l
+ endif
+ let b:lastdir= 1
+" call Dret("MoveRight : b:lastdir=".b:lastdir)
+endfun
+
+" ---------------------------------------------------------------------
+" MoveUp: {{{2
+fun! s:MoveUp()
+" call Dfunc("MoveUp()")
+ if line(".") == 1
+ let curcol= col(".") - 1
+ if curcol == 0 && col("$") == 1
+ exe "norm! i \<Esc>"
+ elseif curcol == 0
+ exe "norm! YP:s/./ /ge\<CR>0r "
+ else
+ exe "norm! YP:s/./ /ge\<CR>0".curcol."lr "
+ endif
+ else
+ let curcol= col(".")
+ norm! k
+ while col("$") <= curcol
+ exe "norm! A \<Esc>"
+ endwhile
+ endif
+ let b:lastdir= 3
+" call Dret("MoveUp : b:lastdir=".b:lastdir)
+endfun
+
+" ---------------------------------------------------------------------
+" MoveDown: {{{2
+fun! s:MoveDown()
+" call Dfunc("MoveDown()")
+ if line(".") == line("$")
+ let curcol= col(".") - 1
+ if curcol == 0 && col("$") == 1
+ exe "norm! i \<Esc>"
+ elseif curcol == 0
+ exe "norm! Yp:s/./ /ge\<CR>0r "
+ else
+ exe "norm! Yp:s/./ /ge\<CR>0".curcol."lr "
+ endif
+ else
+ let curcol= col(".")
+ norm! j
+ while col("$") <= curcol
+ exe "norm! A \<Esc>"
+ endwhile
+ endif
+ let b:lastdir= 4
+" call Dret("MoveDown : b:lastdir=".b:lastdir)
+endfun
+
+" ---------------------------------------------------------------------
+" ReplaceDownLeft: / X (upright) {{{2
+fun! s:ReplaceDownLeft()
+" call Dfunc("ReplaceDownLeft()")
+ let curcol = col(".")
+ if curcol != col("$")
+ let curchar= strpart(getline("."),curcol-1,1)
+ if curchar == "\\" || curchar == "X"
+ exe "norm! r".b:di_cross
+ else
+ exe "norm! r".b:di_upright
+ endif
+ else
+ exe "norm! i".b:di_upright."\<Esc>"
+ endif
+" call Dret("ReplaceDownLeft")
+endfun
+
+" ---------------------------------------------------------------------
+" ReplaceDownRight: \ X (upleft) {{{2
+fun! s:ReplaceDownRight()
+" call Dfunc("ReplaceDownRight()")
+ let curcol = col(".")
+ if curcol != col("$")
+ let curchar= strpart(getline("."),curcol-1,1)
+ if curchar == "/" || curchar == "X"
+ exe "norm! r".b:di_cross
+ else
+ exe "norm! r".b:di_upleft
+ endif
+ else
+ exe "norm! i".b:di_upleft."\<Esc>"
+ endif
+" call Dret("ReplaceDownRight")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawFatRArrow: ----|> {{{2
+fun! s:DrawFatRArrow()
+" call Dfunc("DrawFatRArrow()")
+ call s:MoveRight()
+ norm! r|
+ call s:MoveRight()
+ norm! r>
+" call Dret("DrawFatRArrow")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawFatLArrow: <|---- {{{2
+fun! s:DrawFatLArrow()
+" call Dfunc("DrawFatLArrow()")
+ call s:MoveLeft()
+ norm! r|
+ call s:MoveLeft()
+ norm! r<
+" call Dret("DrawFatLArrow")
+endfun
+
+" ---------------------------------------------------------------------
+" .
+" DrawFatUArrow: /_\ {{{2
+" |
+fun! s:DrawFatUArrow()
+" call Dfunc("DrawFatUArrow()")
+ call s:MoveUp()
+ norm! r_
+ call s:MoveRight()
+ norm! r\
+ call s:MoveLeft()
+ call s:MoveLeft()
+ norm! r/
+ call s:MoveRight()
+ call s:MoveUp()
+ norm! r.
+" call Dret("DrawFatUArrow")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawFatDArrow: _|_ {{{2
+" \ /
+" '
+fun! s:DrawFatDArrow()
+" call Dfunc("DrawFatDArrow()")
+ call s:MoveRight()
+ norm! r_
+ call s:MoveLeft()
+ call s:MoveLeft()
+ norm! r_
+ call s:MoveDown()
+ norm! r\
+ call s:MoveRight()
+ call s:MoveRight()
+ norm! r/
+ call s:MoveDown()
+ call s:MoveLeft()
+ norm! r'
+" call Dret("DrawFatDArrow")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawEllipse: Bresenham-like ellipse drawing algorithm {{{2
+" 2 2 can
+" x y be 2 2 2 2 2 2
+" - + - = 1 rewritten b x + a y = a b
+" a b as
+"
+" Take step which has minimum error
+" (x,y-1) (x+1,y) (x+1,y-1)
+"
+" 2 2 2 2 2 2
+" Ei = | b x + a y - a b |
+"
+" Algorithm only draws arc from (0,b) to (a,0) and uses
+" DrawFour() to reflect points to other three quadrants
+fun! s:Ellipse(x0,y0,x1,y1)
+" call Dfunc("Ellipse(x0=".a:x0." y0=".a:y0." x1=".a:x1." y1=".a:y1.")")
+ let x0 = a:x0
+ let y0 = a:y0
+ let x1 = a:x1
+ let y1 = a:y1
+ let xoff = (x0+x1)/2
+ let yoff = (y0+y1)/2
+ let a = s:Abs(x1-x0)/2
+ let b = s:Abs(y1-y0)/2
+ let a2 = a*a
+ let b2 = b*b
+ let twoa2= a2 + a2
+ let twob2= b2 + b2
+
+ let xi= 0
+ let yi= b
+ let ei= 0
+ call s:DrawFour(xi,yi,xoff,yoff,a,b)
+ while xi <= a && yi >= 0
+
+ let dy= a2 - twoa2*yi
+ let ca= ei + twob2*xi + b2
+ let cb= ca + dy
+ let cc= ei + dy
+
+ let aca= s:Abs(ca)
+ let acb= s:Abs(cb)
+ let acc= s:Abs(cc)
+
+ " pick case: (xi+1,yi) (xi,yi-1) (xi+1,yi-1)
+ if aca <= acb && aca <= acc
+ let xi= xi + 1
+ let ei= ca
+ elseif acb <= aca && acb <= acc
+ let ei= cb
+ let xi= xi + 1
+ let yi= yi - 1
+ else
+ let ei= cc
+ let yi= yi - 1
+ endif
+ if xi > a:x1
+ break
+ endif
+ call s:DrawFour(xi,yi,xoff,yoff,a,b)
+ endw
+" call Dret("Ellipse")
+endf
+
+" ---------------------------------------------------------------------
+" DrawFour: reflect a point to four quadrants {{{2
+fun! s:DrawFour(x,y,xoff,yoff,a,b)
+" call Dfunc("DrawFour(xy[".a:x.",".a:y."] off[".a:xoff.",".a:yoff."] a=".a:a." b=".a:b.")")
+ let x = a:xoff + a:x
+ let y = a:yoff + a:y
+ let lx = a:xoff - a:x
+ let by = a:yoff - a:y
+ call s:SetCharAt('*', x, y)
+ call s:SetCharAt('*', lx, y)
+ call s:SetCharAt('*', lx,by)
+ call s:SetCharAt('*', x,by)
+" call Dret("DrawFour")
+endf
+
+" ---------------------------------------------------------------------
+" SavePosn: saves position of cursor on screen so NetWrite can restore it {{{2
+fun! s:SavePosn()
+" call Dfunc("SavePosn() saveposn_count=".s:saveposn_count)
+ let s:saveposn_count= s:saveposn_count + 1
+
+ " Save current line and column
+ let b:drawit_line_{s:saveposn_count} = line(".")
+ let b:drawit_col_{s:saveposn_count} = col(".") - 1
+
+ " Save top-of-screen line
+ norm! H
+ let b:drawit_hline_{s:saveposn_count}= line(".")
+
+ " restore position
+ exe "norm! ".b:drawit_hline_{s:saveposn_count}."G0z\<CR>"
+ if b:drawit_col_{s:saveposn_count} == 0
+ exe "norm! ".b:drawit_line_{s:saveposn_count}."G0"
+ else
+ exe "norm! ".b:drawit_line_{s:saveposn_count}."G0".b:drawit_col_{s:saveposn_count}."l"
+ endif
+" call Dret("SavePosn : saveposn_count=".s:saveposn_count)
+endfun
+
+" ------------------------------------------------------------------------
+" RestorePosn: {{{2
+fun! s:RestorePosn()
+" call Dfunc("RestorePosn() saveposn_count=".s:saveposn_count)
+ if s:saveposn_count <= 0
+ return
+ endif
+ " restore top-of-screen line
+ exe "norm! ".b:drawit_hline_{s:saveposn_count}."G0z\<CR>"
+
+ " restore position
+ if b:drawit_col_{s:saveposn_count} == 0
+ exe "norm! ".b:drawit_line_{s:saveposn_count}."G0"
+ else
+ exe "norm! ".b:drawit_line_{s:saveposn_count}."G0".b:drawit_col_{s:saveposn_count}."l"
+ endif
+ if s:saveposn_count > 0
+ unlet b:drawit_hline_{s:saveposn_count}
+ unlet b:drawit_line_{s:saveposn_count}
+ unlet b:drawit_col_{s:saveposn_count}
+ let s:saveposn_count= s:saveposn_count - 1
+ endif
+" call Dret("RestorePosn : saveposn_count=".s:saveposn_count)
+endfun
+
+" ------------------------------------------------------------------------
+" Flood: this function begins a flood of a region {{{2
+" based on b:di... characters as boundaries
+" and starting at the current cursor location.
+fun! s:Flood()
+" call Dfunc("Flood()")
+
+ let s:bndry = b:di_vert.b:di_horiz.b:di_plus.b:di_upright.b:di_upleft.b:di_cross
+ let row = line(".")
+ let col = virtcol(".")
+ let athold = @0
+ let s:DIrows = line("$")
+ call s:SavePosn()
+
+ " get fill character from user
+ " Put entire fillchar string into the s:bndry (boundary characters),
+ " although only use the first such character for filling
+ call inputsave()
+ let s:fillchar= input("Enter fill character: ")
+ call inputrestore()
+ let s:bndry= "[".escape(s:bndry.s:fillchar,'\-]^')."]"
+ if strlen(s:fillchar) > 1
+ let s:fillchar= strpart(s:fillchar,0,1)
+ endif
+
+ " flood the region
+ call s:DI_Flood(row,col)
+
+ " restore
+ call s:RestorePosn()
+ let @0= athold
+ unlet s:DIrows s:bndry s:fillchar
+
+" call Dret("Flood")
+endfun
+
+" ------------------------------------------------------------------------
+" DI_Flood: fill up to the boundaries all characters to the left and right. {{{2
+" Then, based on the left/right column extents reached, check
+" adjacent rows to see if any characters there need filling.
+fun! s:DI_Flood(frow,fcol)
+" call Dfunc("DI_Flood(frow=".a:frow." fcol=".a:fcol.")")
+ if a:frow <= 0 || a:fcol <= 0 || s:SetPosn(a:frow,a:fcol) || s:IsBoundary(a:frow,a:fcol)
+" call Dret("DI_Flood")
+ return
+ endif
+
+ " fill current line
+ let colL= s:DI_FillLeft(a:frow,a:fcol)
+ let colR= s:DI_FillRight(a:frow,a:fcol+1)
+
+ " do a filladjacent on the next line up
+ if a:frow > 1
+ call s:DI_FillAdjacent(a:frow-1,colL,colR)
+ endif
+
+ " do a filladjacent on the next line down
+ if a:frow < s:DIrows
+ call s:DI_FillAdjacent(a:frow+1,colL,colR)
+ endif
+
+" call Dret("DI_Flood")
+endfun
+
+" ------------------------------------------------------------------------
+" DI_FillLeft: Starting at (frow,fcol), non-boundary locations are {{{2
+" filled with the fillchar. The leftmost extent reached
+" is returned.
+fun! s:DI_FillLeft(frow,fcol)
+" call Dfunc("DI_FillLeft(frow=".a:frow." fcol=".a:fcol.")")
+ if s:SetPosn(a:frow,a:fcol)
+" call Dret("DI_FillLeft ".a:fcol)
+ return a:fcol
+ endif
+
+ let Lcol= a:fcol
+ while Lcol >= 1
+ if !s:IsBoundary(a:frow,Lcol)
+ exe "silent! norm! r".s:fillchar."h"
+ else
+ break
+ endif
+ let Lcol= Lcol - 1
+ endwhile
+
+ let Lcol= (Lcol < 1)? 1 : Lcol + 1
+
+" call Dret("DI_FillLeft ".Lcol)
+ return Lcol
+endfun
+
+" ---------------------------------------------------------------------
+" DI_FillRight: Starting at (frow,fcol), non-boundary locations are {{{2
+" filled with the fillchar. The rightmost extent reached
+" is returned.
+fun! s:DI_FillRight(frow,fcol)
+" call Dfunc("DI_FillRight(frow=".a:frow." fcol=".a:fcol.")")
+ if s:SetPosn(a:frow,a:fcol)
+" call Dret("DI_FillRight ".a:fcol)
+ return a:fcol
+ endif
+
+ let Rcol = a:fcol
+ while Rcol <= virtcol("$")
+ if !s:IsBoundary(a:frow,Rcol)
+ exe "silent! norm! r".s:fillchar."l"
+ else
+ break
+ endif
+ let Rcol= Rcol + 1
+ endwhile
+
+ let DIcols = virtcol("$")
+ let Rcol = (Rcol > DIcols)? DIcols : Rcol - 1
+
+" call Dret("DI_FillRight ".Rcol)
+ return Rcol
+endfun
+
+" ---------------------------------------------------------------------
+" DI_FillAdjacent: {{{2
+" DI_Flood does FillLeft and FillRight, so the run from left to right
+" (fcolL to fcolR) is known to have been filled. FillAdjacent is called
+" from (fcolL to fcolR) on the lines one row up and down; if any character
+" on the run is not a boundary character, then a flood is needed on that
+" location.
+fun! s:DI_FillAdjacent(frow,fcolL,fcolR)
+" call Dfunc("DI_FillAdjacent(frow=".a:frow." fcolL=".a:fcolL." fcolR=".a:fcolR.")")
+
+ let icol = a:fcolL
+ while icol <= a:fcolR
+ if !s:IsBoundary(a:frow,icol)
+ call s:DI_Flood(a:frow,icol)
+ endif
+ let icol= icol + 1
+ endwhile
+
+" call Dret("DI_FillAdjacent")
+endfun
+
+" ---------------------------------------------------------------------
+" SetPosn: set cursor to given position on screen {{{2
+" srow,scol: -s-creen row and column
+" Returns 1 : failed sanity check
+" 0 : otherwise
+fun! s:SetPosn(row,col)
+" call Dfunc("SetPosn(row=".a:row." col=".a:col.")")
+ " sanity checks
+ if a:row < 1
+" call Dret("SetPosn 1")
+ return 1
+ endif
+ if a:col < 1
+" call Dret("SetPosn 1")
+ return 1
+ endif
+
+ exe "norm! ".a:row."G".a:col."\<Bar>"
+
+" call Dret("SetPosn 0")
+ return 0
+endfun
+
+" ---------------------------------------------------------------------
+" IsBoundary: returns 0 if not on boundary, 1 if on boundary {{{2
+" The "boundary" also includes the fill character.
+fun! s:IsBoundary(row,col)
+" call Dfunc("IsBoundary(row=".a:row." col=".a:col.")")
+
+ let orow= line(".")
+ let ocol= virtcol(".")
+ exe "norm! ".a:row."G".a:col."\<Bar>"
+ norm! vy
+ let ret= @0 =~ s:bndry
+ if a:row != orow || a:col != ocol
+ exe "norm! ".orow."G".ocol."\<Bar>"
+ endif
+
+" call Dret("IsBoundary ".ret)
+ return ret
+endfun
+
+" ---------------------------------------------------------------------
+" PutBlock: puts a register's contents into the text at the current {{{2
+" cursor location
+" replace= 0: Blanks are transparent
+" = 1: Blanks copy over
+" = 2: Erase all drawing characters
+fun! s:PutBlock(block,replace)
+" call Dfunc("PutBlock(block<".a:block."> replace=".a:replace.")")
+ let keep_ve= &ve
+ set ve=
+ call s:SavePosn()
+ exe "let block = @".a:block
+ let blocklen = strlen(block)
+ let drawit_line = line('.')
+ let drawchars = '['.escape(b:di_vert.b:di_horiz.b:di_plus.b:di_upright.b:di_upleft.b:di_cross,'\-').']'
+
+ let iblock = 0
+ while iblock < blocklen
+ let chr= strpart(block,iblock,1)
+
+ if char2nr(chr) == 10
+ " handle newline
+ let drawit_line= drawit_line + 1
+ if b:drawit_col_{s:saveposn_count} == 0
+ exe "norm! ".drawit_line."G0"
+ else
+ exe "norm! ".drawit_line."G0".b:drawit_col_{s:saveposn_count}."l"
+ endif
+
+ elseif a:replace == 2
+ " replace all drawing characters with blanks
+ if match(chr,drawchars) != -1
+ norm! r l
+ else
+ norm! l
+ endif
+
+ elseif chr == ' ' && a:replace == 0
+ " allow blanks to be transparent
+ norm! l
+
+ else
+ " usual replace character
+ exe "norm! r".chr."l"
+ endif
+ let iblock = iblock + 1
+ endwhile
+ call s:RestorePosn()
+
+ let &ve= keep_ve
+" call Dret("PutBlock")
+endfun
+
+" =====================================================================
+" Drawit Functions: (by Sylvain Viart) {{{1
+" =====================================================================
+
+" Spacer: fill end of line with space until textwidth. {{{2
+fun! s:Spacer(debut, fin)
+" call Dfunc("Spacer(debut<".a:debut."> fin<".a:fin.">)")
+
+ let l = a:debut
+ let max = &textwidth
+ if max <= 0
+ let max= &columns
+ endif
+ while l <= a:fin
+ let content = getline(l)
+ let long = strlen(content)
+ let i = long
+ let space = ''
+ while i < max
+ let space = space . ' '
+ let i = i + 1
+ endw
+ call setline(l, content.space)
+ let l = l + 1
+ endw
+
+" call Dret("Spacer")
+endf
+
+" ---------------------------------------------------------------------
+" Holer: {{{2
+fun! s:Holer()
+" call Dfunc("Holer()")
+
+ let nb = input("how many lines under the cursor? ")
+ exe "norm ".nb."o\e"
+ let fin = line('.')
+ call s:Spacer(fin-nb+1, fin)
+ exe "norm ".(nb-1)."k"
+ let b:drawit_holer_used= 1
+
+" call Dret("Holer")
+endf
+
+" ---------------------------------------------------------------------
+" Box: {{{2
+fun! s:Box(x0, y0, x1, y1)
+" call Dfunc("Box(xy0[".a:x0.",".a:y0." xy1[".a:x1.",".a:y1."])")
+ " loop each line
+ let l = a:y0
+ while l <= a:y1
+ let c = a:x0
+ while c <= a:x1
+ if l == a:y0 || l == a:y1
+ let remp = '-'
+ if c == a:x0 || c == a:x1
+ let remp = '+'
+ endif
+ else
+ let remp = '|'
+ if c != a:x0 && c != a:x1
+ let remp = '.'
+ endif
+ endif
+
+ if remp != '.'
+ call s:SetCharAt(remp, c, l)
+ endif
+ let c = c + 1
+ endw
+ let l = l + 1
+ endw
+
+" call Dret("Box")
+endf
+
+" ---------------------------------------------------------------------
+" SetCharAt: set the character at the specified position (must exist) {{{2
+fun! s:SetCharAt(char, x, y)
+" call Dfunc("SetCharAt(char<".a:char."> xy[".a:x.",".a:y."])")
+
+ let content = getline(a:y)
+ let long = strlen(content)
+ let deb = strpart(content, 0, a:x - 1)
+ let fin = strpart(content, a:x, long)
+ call setline(a:y, deb.a:char.fin)
+
+" call Dret("SetCharAt")
+endf
+
+" ---------------------------------------------------------------------
+" Bresenham line-drawing algorithm {{{2
+" taken from :
+" http://www.graphics.lcs.mit.edu/~mcmillan/comp136/Lecture6/Lines.html
+fun! s:DrawLine(x0, y0, x1, y1, horiz)
+" call Dfunc("DrawLine(xy0[".a:x0.",".a:y0."] xy1[".a:x1.",".a:y1."] horiz=".a:horiz.")")
+
+ if ( a:x0 < a:x1 && a:y0 > a:y1 ) || ( a:x0 > a:x1 && a:y0 > a:y1 )
+ " swap direction
+ let x0 = a:x1
+ let y0 = a:y1
+ let x1 = a:x0
+ let y1 = a:y0
+ else
+ let x0 = a:x0
+ let y0 = a:y0
+ let x1 = a:x1
+ let y1 = a:y1
+ endif
+ let dy = y1 - y0
+ let dx = x1 - x0
+
+ if dy < 0
+ let dy = -dy
+ let stepy = -1
+ else
+ let stepy = 1
+ endif
+
+ if dx < 0
+ let dx = -dx
+ let stepx = -1
+ else
+ let stepx = 1
+ endif
+
+ let dy = 2*dy
+ let dx = 2*dx
+
+ if dx > dy
+ " move under x
+ let char = a:horiz
+ call s:SetCharAt(char, x0, y0)
+ let fraction = dy - (dx / 2) " same as 2*dy - dx
+ while x0 != x1
+ let char = a:horiz
+ if fraction >= 0
+ if stepx > 0
+ let char = '\'
+ else
+ let char = '/'
+ endif
+ let y0 = y0 + stepy
+ let fraction = fraction - dx " same as fraction -= 2*dx
+ endif
+ let x0 = x0 + stepx
+ let fraction = fraction + dy " same as fraction = fraction - 2*dy
+ call s:SetCharAt(char, x0, y0)
+ endw
+ else
+ " move under y
+ let char = '|'
+ call s:SetCharAt(char, x0, y0)
+ let fraction = dx - (dy / 2)
+ while y0 != y1
+ let char = '|'
+ if fraction >= 0
+ if stepy > 0 || stepx < 0
+ let char = '\'
+ else
+ let char = '/'
+ endif
+ let x0 = x0 + stepx
+ let fraction = fraction - dy
+ endif
+ let y0 = y0 + stepy
+ let fraction = fraction + dx
+ call s:SetCharAt(char, x0, y0)
+ endw
+ endif
+
+" call Dret("DrawLine")
+endf
+
+" ---------------------------------------------------------------------
+" Arrow: {{{2
+fun! s:Arrow(x0, y0, x1, y1)
+" call Dfunc("Arrow(xy0[".a:x0.",".a:y0."] xy1[".a:x1.",".a:y1."])")
+
+ call s:DrawLine(a:x0, a:y0, a:x1, a:y1,'-')
+ let dy = a:y1 - a:y0
+ let dx = a:x1 - a:x0
+ if s:Abs(dx) > <SID>Abs(dy)
+ " move x
+ if dx > 0
+ call s:SetCharAt('>', a:x1, a:y1)
+ else
+ call s:SetCharAt('<', a:x1, a:y1)
+ endif
+ else
+ " move y
+ if dy > 0
+ call s:SetCharAt('v', a:x1, a:y1)
+ else
+ call s:SetCharAt('^', a:x1, a:y1)
+ endif
+ endif
+
+" call Dret("Arrow")
+endf
+
+" ---------------------------------------------------------------------
+" Abs: return absolute value {{{2
+fun! s:Abs(val)
+ if a:val < 0
+ return - a:val
+ else
+ return a:val
+ endif
+endf
+
+" ---------------------------------------------------------------------
+" Call_corner: call the specified function with the corner position of {{{2
+" the current visual selection.
+fun! s:Call_corner(func_name)
+" call Dfunc("Call_corner(func_name<".a:func_name.">)")
+
+ let xdep = b:xmouse_start
+ let ydep = b:ymouse_start
+ let x0 = col("'<")
+ let y0 = line("'<")
+ let x1 = col("'>")
+ let y1 = line("'>")
+
+ if x1 == xdep && y1 ==ydep
+ let x1 = x0
+ let y1 = y0
+ let x0 = xdep
+ let y0 = ydep
+ endif
+
+" call Decho("exe call s:".a:func_name."(".x0.','.y0.','.x1.','.y1.")")
+ exe "call s:".a:func_name."(".x0.','.y0.','.x1.','.y1.")"
+ let b:xmouse_start= 0
+ let b:ymouse_start= 0
+
+" call Dret("Call_corner")
+endf
+
+" ---------------------------------------------------------------------
+" DrawPlainLine: {{{2
+fun! s:DrawPlainLine(x0,y0,x1,y1)
+" call Dfunc("DrawPlainLine(xy0[".a:x0.",".a:y0."] xy1[".a:x1.",".a:y1."])")
+
+" call Decho("exe call s:DrawLine(".a:x0.','.a:y0.','.a:x1.','.a:y1.',"_")')
+ exe "call s:DrawLine(".a:x0.','.a:y0.','.a:x1.','.a:y1.',"_")'
+
+" call Dret("DrawPlainLine")
+endf
+
+" =====================================================================
+" Mouse Functions: {{{1
+" =====================================================================
+
+" LeftStart: Read visual drag mapping {{{2
+" The visual start point is saved in b:xmouse_start and b:ymouse_start
+fun! s:LeftStart()
+" call Decho("LeftStart()")
+ let b:xmouse_start = col('.')
+ let b:ymouse_start = line('.')
+ vnoremap <silent> <leftrelease> <leftrelease>:<c-u>call <SID>LeftRelease()<cr>
+" call Decho("LeftStart()")
+endf!
+
+" ---------------------------------------------------------------------
+" LeftRelease: {{{2
+fun! s:LeftRelease()
+" call Dfunc("LeftRelease()")
+ vunmap <leftrelease>
+ norm! gv
+" call Dret("LeftRelease")
+endf
+
+" ---------------------------------------------------------------------
+" SLeftStart: begin drawing with a brush {{{2
+fun! s:SLeftStart()
+ if !exists("b:drawit_brush")
+ let b:drawit_brush= "a"
+ endif
+" call Dfunc("SLeftStart() brush=".b:drawit_brush)
+ noremap <silent> <s-leftdrag> <leftmouse>:<c-u>call <SID>SLeftDrag()<cr>
+ noremap <silent> <s-leftrelease> <leftmouse>:<c-u>call <SID>SLeftRelease()<cr>
+" call Dret("SLeftStart")
+endfun
+
+" ---------------------------------------------------------------------
+" SLeftDrag: {{{2
+fun! s:SLeftDrag()
+" call Dfunc("SLeftDrag()")
+ call s:SavePosn()
+ call s:PutBlock(b:drawit_brush,0)
+ call s:RestorePosn()
+" call Dret("SLeftDrag")
+endfun
+
+" ---------------------------------------------------------------------
+" SLeftRelease: {{{2
+fun! s:SLeftRelease()
+" call Dfunc("SLeftRelease()")
+ call s:SLeftDrag()
+ nunmap <s-leftdrag>
+ nunmap <s-leftrelease>
+" call Dret("SLeftRelease")
+endfun
+
+" ---------------------------------------------------------------------
+" DrawIt#SetBrush: {{{2
+fun! DrawIt#SetBrush(brush) range
+" call Dfunc("DrawIt#SetBrush(brush<".a:brush.">)")
+ let b:drawit_brush= a:brush
+" call Decho("visualmode<".visualmode()."> range[".a:firstline.",".a:lastline."] visrange[".line("'<").",".line("'>")."]")
+ if visualmode() == "\<c-v>" && ((a:firstline == line("'>") && a:lastline == line("'<")) || (a:firstline == line("'<") && a:lastline == line("'>")))
+ " last visual mode was visual block mode, and
+ " either [firstline,lastline] == ['<,'>] or ['>,'<]
+ " Assuming that SetBrush called from a visual-block selection!
+ " Yank visual block into selected register (brush)
+" call Decho("yanking visual block into register ".b:drawit_brush)
+ exe 'norm! gv"'.b:drawit_brush.'y'
+ endif
+" call Dret("DrawIt#SetBrush : b:drawit_brush=".b:drawit_brush)
+endfun
+
+" ------------------------------------------------------------------------
+" Modelines: {{{1
+" vim: fdm=marker
+let &cpo= s:keepcpo
+unlet s:keepcpo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/autoload/vimball.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,628 @@
+" vimball.vim : construct a file containing both paths and files
+" Author: Charles E. Campbell, Jr.
+" Date: Jan 03, 2007
+" Version: 21
+" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
+" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.
+" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
+" (see |copyright|) except use "Vimball" instead of "Vim".
+" No warranty, express or implied.
+" *** *** Use At-Your-Own-Risk! *** ***
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if &cp || exists("g:loaded_vimball") || v:version < 700
+ finish
+endif
+let s:keepcpo = &cpo
+let g:loaded_vimball = "v21"
+set cpo&vim
+
+" =====================================================================
+" Constants: {{{1
+if !exists("s:USAGE")
+ let s:USAGE = 0
+ let s:WARNING = 1
+ let s:ERROR = 2
+endif
+
+" =====================================================================
+" Functions: {{{1
+
+" ---------------------------------------------------------------------
+" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
+" Vimball Format:
+" path
+" filesize
+" [file]
+" path
+" filesize
+" [file]
+fun! vimball#MkVimball(line1,line2,writelevel,...) range
+" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
+ if a:1 =~ '.vim' || a:1 =~ '.txt'
+ let vbname= substitute(a:1,'\.\a\{3}$','.vba','')
+ else
+ let vbname= a:1
+ endif
+ if vbname !~ '\.vba$'
+ let vbname= vbname.'.vba'
+ endif
+" call Decho("vbname<".vbname.">")
+ if a:1 =~ '[\/]'
+ call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes")
+" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
+ return
+ endif
+ if !a:writelevel && filereadable(vbname)
+ call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist")
+" call Dret("MkVimball : file<".vbname."> already exists; use ! to insist")
+ return
+ endif
+
+ " user option bypass
+ call s:SaveSettings()
+
+ if a:0 >= 2
+ " allow user to specify where to get the files
+ let home= expand(a:2)
+ else
+ " use first existing directory from rtp
+ let home= s:VimballHome()
+ endif
+
+ " save current directory
+ let curdir = getcwd()
+ call s:ChgDir(home)
+
+ " record current tab, initialize while loop index
+ let curtabnr = tabpagenr()
+ let linenr = a:line1
+" call Decho("curtabnr=".curtabnr)
+
+ while linenr <= a:line2
+ let svfile = getline(linenr)
+" call Decho("svfile<".svfile.">")
+
+ if !filereadable(svfile)
+ call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">")
+ call s:ChgDir(curdir)
+ call s:RestoreSettings()
+" call Dret("MkVimball")
+ return
+ endif
+
+ " create/switch to mkvimball tab
+ if !exists("vbtabnr")
+ tabnew
+ silent! file Vimball
+ let vbtabnr= tabpagenr()
+ else
+ exe "tabn ".vbtabnr
+ endif
+
+ let lastline= line("$") + 1
+ if lastline == 2 && getline("$") == ""
+ call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.')
+ call setline(2,'UseVimball')
+ call setline(3,'finish')
+ let lastline= line("$") + 1
+ endif
+ call setline(lastline ,substitute(svfile,'$',' [[[1',''))
+ call setline(lastline+1,0)
+
+ " write the file from the tab
+ let svfilepath= s:Path(svfile,'')
+" call Decho("exe $r ".svfilepath)
+ exe "$r ".svfilepath
+
+ call setline(lastline+1,line("$") - lastline - 1)
+" call Decho("lastline=".lastline." line$=".line("$"))
+
+ " restore to normal tab
+ exe "tabn ".curtabnr
+ let linenr= linenr + 1
+ endwhile
+
+ " write the vimball
+ exe "tabn ".vbtabnr
+ call s:ChgDir(curdir)
+ if a:writelevel
+ let vbnamepath= s:Path(vbname,'')
+" call Decho("exe w! ".vbnamepath)
+ exe "w! ".vbnamepath
+ else
+ let vbnamepath= s:Path(vbname,'')
+" call Decho("exe w ".vbnamepath)
+ exe "w ".vbnamepath
+ endif
+" call Decho("Vimball<".vbname."> created")
+ echo "Vimball<".vbname."> created"
+
+ " remove the evidence
+ setlocal nomod bh=wipe
+ exe "tabn ".curtabnr
+ exe "tabc ".vbtabnr
+
+ " restore options
+ call s:RestoreSettings()
+
+" call Dret("MkVimball")
+endfun
+
+" ---------------------------------------------------------------------
+" vimball#Vimball: extract and distribute contents from a vimball {{{2
+fun! vimball#Vimball(really,...)
+" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
+
+ if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
+ echoerr "(Vimball) The current file does not appear to be a Vimball!"
+" call Dret("vimball#Vimball")
+ return
+ endif
+
+ " set up standard settings
+ call s:SaveSettings()
+ let curtabnr = tabpagenr()
+
+ " set up vimball tab
+" call Decho("setting up vimball tab")
+ tabnew
+ silent! file Vimball
+ let vbtabnr= tabpagenr()
+ let didhelp= ""
+
+ " go to vim plugin home
+ if a:0 > 0
+ let home= expand(a:1)
+ else
+ let home= s:VimballHome()
+ endif
+" call Decho("home<".home.">")
+
+ " save current directory and remove older same-named vimball, if any
+ let curdir = getcwd()
+" call Decho("home<".home.">")
+" call Decho("curdir<".curdir.">")
+
+ call s:ChgDir(home)
+ call vimball#RmVimball()
+
+ let linenr = 4
+ let filecnt = 0
+
+ " give title to listing of (extracted) files from Vimball Archive
+ if a:really
+ echohl Title | echomsg "Vimball Archive" | echohl None
+ else
+ echohl Title | echomsg "Vimball Archive Listing" | echohl None
+ echohl Statement | echomsg "files would be placed under: ".home | echohl None
+ endif
+
+ " apportion vimball contents to various files
+" call Decho("exe tabn ".curtabnr)
+ exe "tabn ".curtabnr
+" call Decho("linenr=".linenr." line$=".line("$"))
+ while 1 < linenr && linenr < line("$")
+ let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
+ let fname = substitute(fname,'\\','/','g')
+ let fsize = getline(linenr+1)
+ let filecnt = filecnt + 1
+" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
+
+ if a:really
+ echomsg "extracted <".fname.">: ".fsize." lines"
+ else
+ echomsg "would extract <".fname.">: ".fsize." lines"
+ endif
+" call Decho("using L#".linenr.": will extract file<".fname.">")
+" call Decho("using L#".(linenr+1).": fsize=".fsize)
+
+ " Allow AsNeeded/ directory to take place of plugin/ directory
+ " when AsNeeded/filename is filereadable
+ if fname =~ '\<plugin/'
+ let anfname= substitute(fname,'\<plugin/','AsNeeded/','')
+ if filereadable(anfname)
+" call Decho("using anfname<".anfname."> instead of <".fname.">")
+ let fname= anfname
+ endif
+ endif
+
+ " make directories if they don't exist yet
+ if a:really
+" call Decho("making directories if they don't exist yet (fname<".fname.">)")
+ let fnamebuf= substitute(fname,'\\','/','g')
+ let dirpath = substitute(home,'\\','/','g')
+ while fnamebuf =~ '/'
+ let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
+ let dirpath = dirname
+ let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
+" call Decho("dirname<".dirname.">")
+ if !isdirectory(dirname)
+" call Decho("making <".dirname.">")
+ call mkdir(dirname)
+ call s:RecordInVar(home,"rmdir('".dirname."')")
+ endif
+ endwhile
+ endif
+ call s:ChgDir(home)
+
+ " grab specified qty of lines and place into "a" buffer
+ " (skip over path/filename and qty-lines)
+ let linenr = linenr + 2
+ let lastline = linenr + fsize - 1
+" call Decho("exe ".linenr.",".lastline."yank a")
+ exe "silent ".linenr.",".lastline."yank a"
+
+ " copy "a" buffer into tab
+" call Decho('copy "a buffer into tab#'.vbtabnr)
+ exe "tabn ".vbtabnr
+ silent! %d
+ silent put a
+ 1
+ silent d
+
+ " write tab to file
+ if a:really
+ let fnamepath= s:Path(home."/".fname,'')
+" call Decho("exe w! ".fnamepath)
+ exe "silent w! ".fnamepath
+ echo "wrote ".fnamepath
+ call s:RecordInVar(home,"call delete('".fnamepath."')")
+ endif
+
+ " return to tab with vimball
+" call Decho("exe tabn ".curtabnr)
+ exe "tabn ".curtabnr
+
+ " set up help if its a doc/*.txt file
+" call Decho("didhelp<".didhelp."> fname<".fname.">")
+ if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.txt$'
+ let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','')
+" call Decho("didhelp<".didhelp.">")
+ endif
+
+ " update for next file
+" let oldlinenr = linenr " Decho
+ let linenr = linenr + fsize
+" call Decho("update linenr= [linenr=".oldlinenr."] + [fsize=".fsize."] = ".linenr)
+ endwhile
+
+ " set up help
+" call Decho("about to set up help: didhelp<".didhelp.">")
+ if didhelp != ""
+ let htpath= escape(substitute(s:Path(home."/".didhelp,'"'),'"','','g'),' ')
+" call Decho("exe helptags ".htpath)
+ exe "helptags ".htpath
+ echo "did helptags"
+ endif
+
+ " make sure a "Press ENTER..." prompt appears to keep the messages showing!
+ while filecnt <= &ch
+ echomsg " "
+ let filecnt= filecnt + 1
+ endwhile
+
+ " record actions in <.VimballRecord>
+ call s:RecordInFile(home)
+
+ " restore events, delete tab and buffer
+ exe "tabn ".vbtabnr
+ setlocal nomod bh=wipe
+ exe "tabn ".curtabnr
+ exe "tabc ".vbtabnr
+ call s:RestoreSettings()
+ call s:ChgDir(curdir)
+
+" call Dret("vimball#Vimball")
+endfun
+
+" ---------------------------------------------------------------------
+" vimball#RmVimball: remove any files, remove any directories made by any {{{2
+" previous vimball extraction based on a file of the current
+" name.
+" Usage: RmVimball (assume current file is a vimball; remove)
+" RmVimball vimballname
+fun! vimball#RmVimball(...)
+" call Dfunc("vimball#RmVimball() a:0=".a:0)
+ if exists("g:vimball_norecord")
+" call Dret("vimball#RmVimball : (g:vimball_norecord)")
+ return
+ endif
+ let eikeep= &ei
+ set ei=all
+" call Decho("turned off all events")
+
+ if a:0 == 0
+ let curfile= '^'.expand("%:tr")
+ else
+ if a:1 =~ '[\/]'
+ call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]")
+" call Dret("vimball#RmVimball : suspect a:1<".a:1.">")
+ return
+ endif
+ let curfile= a:1
+ endif
+ if curfile !~ '.vba$'
+ let curfile= curfile.".vba: "
+ else
+ let curfile= curfile.": "
+ endif
+ if a:0 >= 2
+ let home= expand(a:2)
+ else
+ let home= s:VimballHome()
+ endif
+ let curdir = getcwd()
+" call Decho("home <".home.">")
+" call Decho("curfile<".curfile.">")
+" call Decho("curdir <".curdir.">")
+
+ call s:ChgDir(home)
+ if filereadable(".VimballRecord")
+" call Decho(".VimballRecord is readable")
+" call Decho("curfile<".curfile.">")
+ keepalt keepjumps 1split
+ silent! keepalt keepjumps e .VimballRecord
+ let keepsrch= @/
+ if search(curfile,'cw')
+ let exestring= substitute(getline("."),curfile,'','')
+" call Decho("exe ".exestring)
+ silent! keepalt keepjumps exe exestring
+ silent! keepalt keepjumps d
+ else
+" call Decho("unable to find <".curfile."> in .VimballRecord")
+ endif
+ silent! keepalt keepjumps g/^\s*$/d
+ silent! keepalt keepjumps wq!
+ let @/= keepsrch
+ endif
+ call s:ChgDir(curdir)
+
+ " restoring events
+" call Decho("restoring events")
+ let &ei= eikeep
+
+" call Dret("vimball#RmVimball")
+endfun
+
+" ---------------------------------------------------------------------
+" vimball#Decompress: attempts to automatically decompress vimballs {{{2
+fun! vimball#Decompress(fname)
+" call Dfunc("Decompress(fname<".a:fname.">)")
+
+ " decompression:
+ if expand("%") =~ '.*\.gz' && executable("gunzip")
+ exe "!gunzip ".a:fname
+ let fname= substitute(a:fname,'\.gz$','','')
+ exe "e ".escape(fname,' \')
+ call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+ elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
+ exe "!bunzip2 ".a:fname
+ let fname= substitute(a:fname,'\.bz2$','','')
+ exe "e ".escape(fname,' \')
+ call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+ elseif expand("%") =~ '.*\.zip' && executable("unzip")
+ exe "!unzip ".a:fname
+ let fname= substitute(a:fname,'\.zip$','','')
+ exe "e ".escape(fname,' \')
+ call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
+ endif
+ set noma bt=nofile fmr=[[[,]]] fdm=marker
+
+" call Dret("Decompress")
+endfun
+
+" ---------------------------------------------------------------------
+" vimball#ShowMesg: {{{2
+fun! vimball#ShowMesg(level,msg)
+" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
+ let rulerkeep = &ruler
+ let showcmdkeep = &showcmd
+ set noruler noshowcmd
+ redraw!
+
+ if &fo =~ '[ta]'
+ echomsg "***vimball*** " a:msg
+ else
+ if a:level == s:WARNING || a:level == s:USAGE
+ echohl WarningMsg
+ elseif a:level == s:ERROR
+ echohl Error
+ endif
+ echomsg "***vimball*** " a:msg
+ echohl None
+ endif
+
+ if a:level != s:USAGE
+ call inputsave()|let ok= input("Press <cr> to continue")|call inputrestore()
+ endif
+
+ let &ruler = rulerkeep
+ let &showcmd = showcmdkeep
+
+" call Dret("vimball#ShowMesg")
+endfun
+
+" ---------------------------------------------------------------------
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" =====================================================================
+" s:ChgDir: change directory (in spite of Windoze) {{{2
+fun! s:ChgDir(newdir)
+" call Dfunc("ChgDir(newdir<".a:newdir.">)")
+ if (has("win32") || has("win95") || has("win64") || has("win16"))
+ exe 'silent cd '.escape(substitute(a:newdir,'/','\\','g'),' ')
+ else
+ exe 'silent cd '.escape(a:newdir,' ')
+ endif
+" call Dret("ChgDir")
+endfun
+
+" ---------------------------------------------------------------------
+" s:Path: prepend and append quotes, do escaping, as necessary {{{2
+fun! s:Path(cmd,quote)
+" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">)")
+ if (has("win32") || has("win95") || has("win64") || has("win16"))
+ let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
+ else
+ let cmdpath= a:quote.a:cmd.a:quote
+ endif
+ if a:quote == ""
+ let cmdpath= escape(cmdpath,' ')
+ endif
+" call Dret("Path <".cmdpath.">")
+ return cmdpath
+endfun
+
+" ---------------------------------------------------------------------
+" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
+fun! s:RecordInVar(home,cmd)
+" call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)")
+ if a:cmd =~ '^rmdir'
+" if !exists("s:recorddir")
+" let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
+" else
+" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
+" endif
+" call Decho("recorddir=".s:recorddir)
+ elseif !exists("s:recordfile")
+ let s:recordfile= a:cmd
+" call Decho("recordfile=".s:recordfile)
+ else
+ let s:recordfile= s:recordfile."|".a:cmd
+" call Decho("recordfile=".s:recordfile)
+ endif
+" call Dret("RecordInVar")
+endfun
+
+" ---------------------------------------------------------------------
+" s:RecordInFile: {{{2
+fun! s:RecordInFile(home)
+" call Dfunc("RecordInFile()")
+ if exists("g:vimball_norecord")
+" call Dret("RecordInFile : (g:vimball_norecord)")
+ return
+ endif
+
+ if exists("s:recordfile") || exists("s:recorddir")
+ let curdir= getcwd()
+ call s:ChgDir(a:home)
+ keepalt keepjumps 1split
+ let cmd= expand("%:tr").": "
+ silent! keepalt keepjumps e .VimballRecord
+ $
+ if exists("s:recordfile") && exists("s:recorddir")
+ let cmd= cmd.s:recordfile."|".s:recorddir
+ elseif exists("s:recorddir")
+ let cmd= cmd.s:recorddir
+ elseif exists("s:recordfile")
+ let cmd= cmd.s:recordfile
+ else
+" call Dret("RecordInFile")
+ return
+ endif
+ keepalt keepjumps put=cmd
+ silent! keepalt keepjumps g/^\s*$/d
+ silent! keepalt keepjumps wq!
+ call s:ChgDir(curdir)
+ if exists("s:recorddir") |unlet s:recorddir |endif
+ if exists("s:recordfile")|unlet s:recordfile|endif
+ else
+" call Decho("s:record[file|dir] doesn't exist")
+ endif
+
+" call Dret("RecordInFile")
+endfun
+
+" ---------------------------------------------------------------------
+" s:Rmdir: {{{2
+"fun! s:Rmdir(dirname)
+"" call Dfunc("s:Rmdir(dirname<".a:dirname.">)")
+" if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
+" call system("del ".a:dirname)
+" else
+" call system("rmdir ".a:dirname)
+" endif
+"" call Dret("s:Rmdir")
+"endfun
+
+" ---------------------------------------------------------------------
+" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
+fun! s:VimballHome()
+" call Dfunc("VimballHome()")
+ if exists("g:vimball_home")
+ let home= g:vimball_home
+ else
+ " go to vim plugin home
+ for home in split(&rtp,',') + ['']
+ if isdirectory(home) && filewritable(home) | break | endif
+ endfor
+ if home == ""
+ " just pick the first directory
+ let home= substitute(&rtp,',.*$','','')
+ endif
+ if (has("win32") || has("win95") || has("win64") || has("win16"))
+ let home= substitute(home,'/','\\','g')
+ endif
+ endif
+" call Dret("VimballHome <".home.">")
+ return home
+endfun
+
+" ---------------------------------------------------------------------
+" s:SaveSettings: {{{2
+fun! s:SaveSettings()
+" call Dfunc("SaveSettings()")
+ let s:makeep = getpos("'a")
+ let s:regakeep= @a
+ if exists("&acd")
+ let s:acdkeep = &acd
+ endif
+ let s:eikeep = &ei
+ let s:fenkeep = &fen
+ let s:hidkeep = &hidden
+ let s:ickeep = &ic
+ let s:repkeep = &report
+ let s:vekeep = &ve
+ let s:lzkeep = &lz
+ if exists("&acd")
+ set ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz
+ else
+ set ei=all ve=all nofen noic report=999 nohid bt= ma lz
+ endif
+" call Dret("SaveSettings")
+endfun
+
+" ---------------------------------------------------------------------
+" s:RestoreSettings: {{{2
+fun! s:RestoreSettings()
+" call Dfunc("RestoreSettings()")
+ let @a = s:regakeep
+ if exists("&acd")
+ let &acd = s:acdkeep
+ endif
+ let &fen = s:fenkeep
+ let &hidden = s:hidkeep
+ let &ic = s:ickeep
+ let &lz = s:lzkeep
+ let &report = s:repkeep
+ let &ve = s:vekeep
+ let &ei = s:eikeep
+ if s:makeep[0] != 0
+ " restore mark a
+" call Decho("restore mark-a: makeep=".string(makeep))
+ call setpos("'a",s:makeep)
+ endif
+ if exists("&acd")
+ unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep
+ else
+ unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep
+ endif
+ set bt=nofile noma
+" call Dret("RestoreSettings")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim: fdm=marker
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/doc/DrawIt.txt Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,323 @@
+*drawit.txt* The DrawIt Tool Apr 10, 2006
+
+Authors: Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
+ Sylvain Viart <molo@multimania.com>
+ (remove NOSPAM from Campbell's email first)
+Copyright: Copyright (C) 2004-2006 Charles E. Campbell, Jr. {{{1
+ Permission is hereby granted to use and distribute this code,
+ with or without modifications, provided that this copyright
+ notice is copied with it. Like anything else that's free,
+ DrawIt.vim is provided *as is* and comes with no warranty
+ of any kind, either expressed or implied. By using this
+ plugin, you agree that in no event will the copyright
+ holder be liable for any damages resulting from the use
+ of this software.
+
+
+==============================================================================
+1. Contents *drawit-contents*
+
+ 1. Contents......................: |drawit-contents|
+ 2. DrawIt Manual.................: |drawit|
+ 3. DrawIt Usage..................: |drawit-usage|
+ Starting....................: |drawit-start|
+ Stopping....................: |drawit-stopping|
+ User Map Protection.........: |drawit-protect|
+ Drawing.....................: |drawit-drawing|
+ Changing Drawing Characters.: |drawit-setdrawit|
+ Moving......................: |drawit-moving|
+ Erasing.....................: |drawit-erase|
+ Example.....................: |drawit-example|
+ Visual Block Mode...........: |drawit-visblock|
+ Brushes.....................: |drawit-brush|
+ DrawIt Modes................: |drawit-modes|
+ 4. DrawIt History................: |drawit-history|
+
+
+==============================================================================
+2. DrawIt Manual *drawit*
+ *drawit-manual*
+ /=============+============================================================\
+ || Starting & | ||
+ || Stopping | Explanation ||
+ ++------------+-----------------------------------------------------------++
+ || \di | start DrawIt ||
+ || \ds | stop DrawIt ||
+ || :DIstart | start DrawIt ||
+ || :DIstop | stop DrawIt ||
+ || | ||
+ ++============+===========================================================++
+ || Maps | Explanation ||
+ ++------------+-----------------------------------------------------------++
+ || | The DrawIt routines use a replace, move, and ||
+ || | replace/insert strategy. The package also lets one insert||
+ || | spaces, draw arrows by using the following characters or ||
+ || | keypad characters: ||
+ || +-----------------------------------------------------------++
+ || <left> | move and draw left ||
+ || <right> | move and draw right, inserting lines/space as needed ||
+ || <up> | move and draw up, inserting lines/space as needed ||
+ || <down> | move and draw down, inserting lines/space as needed ||
+ || <s-left> | move left ||
+ || <s-right> | move right, inserting lines/space as needed ||
+ || <s-up> | move up, inserting lines/space as needed ||
+ || <s-down> | move down, inserting lines/space as needed ||
+ || <space> | toggle into and out of erase mode ||
+ || > | insert a > and move right (draw -> arrow) ||
+ || < | insert a < and move left (draw <- arrow) ||
+ || ^ | insert a ^ and move up (draw ^ arrow) ||
+ || v | insert a v and move down (draw v arrow) ||
+ || <pgdn> | replace with a \, move down and right, and insert a \ ||
+ || <end> | replace with a /, move down and left, and insert a / ||
+ || <pgup> | replace with a /, move up and right, and insert a / ||
+ || <home> | replace with a \, move up and left, and insert a \ ||
+ || \> | insert a fat > and move right (draw -> arrow) ||
+ || \< | insert a fat < and move left (draw <- arrow) ||
+ || \^ | insert a fat ^ and move up (draw ^ arrow) ||
+ || \v | insert a fat v and move down (draw v arrow) ||
+ || | ||
+ ||============+===========================================================++
+ ||Visual Cmds | Explanation ||
+ ||------------+-----------------------------------------------------------++
+ || | The drawing mode routines use visual-block mode to ||
+ || | select endpoints for lines, arrows, and ellipses. Bresen- ||
+ || | ham and Bresenham-like algorithms are used for this. ||
+ || | ||
+ || | These routines need a block of spaces, and so the "holer" ||
+ || | routine must first be used to create such a block. The ||
+ || | holer routine will query the user for the number of lines ||
+ || | to hold |'textwidth'| spaces. ||
+ || +-----------------------------------------------------------++
+ || \a | draw arrow from corners of visual-block selected region ||
+ || \b | draw box on visual-block selected region ||
+ || \e | draw an ellipse on visual-block selected region ||
+ || \f | flood figure with a character (you will be prompted) ||
+ || \h | the holer routine (will query user, see above) ||
+ || \l | draw line from corners of visual-block selected region ||
+ || \s | spacer: appends spaces up to the textwidth (default: 78) ||
+ || | ||
+ ++============+===========================================================++
+ || Function and Explanation ||
+ ++------------+-----------------------------------------------------------++
+ || :call SetDrawIt('vertical','horizontal','crossing','\','/','X') ||
+ || set drawing characters for motions for moving ||
+ || default motion ||
+ || | up/down, ||
+ || - left/right, ||
+ || + -| crossing, ||
+ || \ downright, ||
+ || / downleft, and ||
+ || X \/ crossing ||
+ ++=====================+==================================================++
+ || Commands | Explanation ||
+ ++---------------------+--------------------------------------------------++
+ || :SetBrush a-z | sets brush (register) to given ||
+ || :'<,'>SetBrush a-z | yanks visual block to brush (register) ||
+ \==========================================================================/
+
+
+==============================================================================
+3. DrawIt Usage *drawit-usage*
+
+STARTING *drawit-start*
+\di
+
+Typically one puts <drawit.vim> into the .vim/plugin directory
+(vimfiles\plugin for MS) where it becomes always available. It uses a minimal
+interface (\di: you can think of it as *D*raw*I*t or *D*rawIt *I*nitialize) to
+start it and (\ds: *D*rawIt *S*top) to stop it. Instead of using "\" you may
+specify your own preference for a map leader (see |mapleader|).
+
+A message, "[DrawIt]", will appear on the message line.
+
+
+STOPPING *drawit-stopping*
+\ds
+
+When you are done with DrawIt, use \ds to stop DrawIt mode. Stopping DrawIt
+will restore your usual options and remove the maps DrawIt set up.
+
+A message, "[DrawIt off]", will appear on the message line.
+
+
+USER MAP PROTECTION *drawit-protect*
+
+Starting DrawIt causes it to set up a number of maps which facilitate
+drawing. Just use the arrow keys or the keypad to cruise around your display.
+DrawIt will then leave appropriate lines as you move horizontally, vertically,
+or diagonally, and will transparently enlarge your file to accommodate your
+drawing as needed. DrawIt saves both maps and user options and sets them to
+its own needs. You may use h-j-k-l to move about your display and generally
+use editing commands as you wish even while in DrawIt mode.
+
+
+OPTIONS
+
+ g:drawit_insertmode : if this variable exists *drawit-options*
+ and is 1 then maps are made
+ which make cursor-control
+ drawing available while in
+ insert mode.
+
+DRAWING *drawit-drawing*
+
+After DrawIt is started, just use the number pad to move the cursor about. It
+will leave a trail of -s, |s, \s, /s (depending on which direction and
+SetDrawIt() changes), and +s and Xs where line crossing occurs.
+
+
+CHANGING DRAWING CHARACTERS *drawit-setdrawit*
+
+The SetDrawIt() function is available for those who wish to change the
+characters that DrawIt uses. >
+
+ ex. :call SetDrawIt('*','*','*','*','*','*')
+ ex. :call SetDrawIt('-','|','-','\','/','/')
+<
+The first example shows how to change all the DrawIt drawing characters to
+asterisks, and the second shows how to give crossing priority to - and /.
+
+
+MOVING *drawit-move* *drawit-moving*
+
+DrawIt supports shifting the arrow keys to cause motion of the cursor. The
+motion of the cursor will not modify what's below the cursor. The cursor
+will move and lines and/or spaces will be inserted to support the move as
+required. Your terminal may not support shifted arrow keys, however, or Vim
+may not catch them as such. For example, on the machine I use, shift-up
+(<s-up>) produced <Esc>[161q, but vim didn't know that sequence was a <s-up>.
+I merely made a nmap:
+
+ nmap <Esc>[161q <s-up>
+
+and vim thereafter recognized the <s-up> command.
+
+
+ERASING *drawit-erase*
+<space>
+
+The <space> key will toggle DrawIt's erase mode/DrawIt mode. When in
+[DrawIt erase] mode, a message "[DrawIt erase]" will appear and the
+number pad will now cause spaces to be drawn instead of the usual drawing
+characters. The drawing characters will be restored when the <space>
+key toggles DrawIt back to regular DrawIt mode.
+
+
+EXAMPLES *drawit-example*
+
+Needless to say, the bottom spirals were done with DrawIt and some
+block editing with Vim: >
+
+ +------------ -----------+ +------------ -----------+ +------------
+ |+----------+ +---------+| |+----------+ +---------+| |+----------+
+ ||+--------+| |+-------+|| ||+--------+| |+-------+|| ||+--------+|
+ |||-------+|| ||+------||| |||-------+|| ||+------||| |||-------+||
+ ||+-------+|| ||+------+|| ||+-------+|| ||+------+|| ||+-------+||
+ |+---------+| |+--------+| |+---------+| |+--------+| |+---------+|
+ +-----------+ +----------+ +-----------+ +----------+ +-----------+
+
+VISUAL BLOCK MODE FOR ARROWS LINES BOXES AND ELLIPSES *drawit-visblock*
+\a \b \e \h \l \s
+
+The DrawIt package has been merged with Sylvain Viart's drawing package
+which provides DrawIt with visual-block selection of starting/ending
+point drawing of arrows (\a), lines (\l), and boxes (\b). Additionally
+I wrote an ellipse drawing function using visual block specification (\e).
+
+One must have a block of spaces for these maps which the "holer" routine
+(\h) will help create. The holer routine will query the user for the number
+of lines s/he wishes to have, and will fill those lines with spaces out to the
+|'textwidth'| (or 78 spaces if that option hasn't been set).
+
+The Sylvain Viart functions and the ellipse drawing function depend
+upon using visual block mode. Typical use: >
+
+ Example: * \h
+ DrawIt asks: how many lines under the cursor? 10
+ DrawIt then appends 10 lines filled with blanks
+ out to textwidth (if defined) or 78 columns.
+ * ctrl-v (move) \b
+ DrawIt then draws a box
+<
+One first creates a number of blank-filled lines; the \h map (the "holer") is
+useful for this. Select the first endpoint with ctrl-v and then move to the
+other endpoint. One may then select \a for arrows, \b for boxes, \e for ellipses,
+or \l for lines.
+>
+ Examples:
+
+ __ _ *************** +-------+
+ \_ _/ **** **** | |
+ \_ _/ ** ---------> ** | |
+ \_ _/ **** **** | |
+ \__/ <------- *************** +-------+
+
+ \l \a \e and \a \b
+<
+ *drawit-setbrush*
+BRUSHES *drawit-brush*
+>
+ :SetBrush a-z
+<
+ Set the current brush to the given letter (actually, its
+ a named register; see |quotea|). Default brush: a
+>
+ :'<,'>SetBrush a-z
+<
+ Set the current brush to the given letter, and yank the visual
+ block to that named register (see |quotea|). Default brush: a
+>
+ <shift-leftmouse>
+<
+ One may drag and draw with the current brush (default brush: a)
+ by holding down the shift key and the leftmouse button and moving
+ the mouse. Blanks in the brush are considered to be transparent.
+>
+ \ra ... \rz
+<
+ Replace text with the given register.
+>
+ \pa ... \pz
+<
+ Like \ra ... \rz, except that blanks are considered to be transparent.
+
+DRAWIT MODES *drawit-modes*
+
+ -[DrawIt] regular DrawIt mode
+ -[DrawIt off] DrawIt is off
+ -[DrawIt erase] DrawIt will erase using the number pad
+
+ g:DrChipTopLvlMenu: by default its "DrChip"; you may set this to whatever
+ you like in your <.vimrc>. This variable controls where
+ DrawIt's menu items are placed.
+
+
+==============================================================================
+4. History *drawit-history*
+
+ 7 Feb 16, 2005 * now checks that "m" is in &go before attempting to
+ use menus
+ Aug 17, 2005 * report option workaround
+ Nov 01, 2005 * converted DrawIt to use autoload feature of vim 7.0
+ Dec 28, 2005 * now uses cecutil to save/restore user maps
+ Jan 18, 2006 * cecutil now updated to use keepjumps
+ Jan 23, 2006 * :DIstart and :DIstop commands provided; thus users
+ using "set noremap" can still use DrawIt.
+ Jan 26, 2006 * DrawIt menu entry now keeps its place
+ Apr 10, 2006 * Brushes were implemented
+ 6 Feb 24, 2003 * The latest DrawIt now provides a fill function.
+ \f will ask for a character to fill the figure
+ surrounding the current cursor location. Plus
+ I suggest reading :he drawit-tip for those whose
+ home/pageup/pagedown/end keys aren't all working
+ properly with DrawIt.
+ 08/18/03 : \p[a-z] and \r[a-z] implemented
+ 08/04/03 : b:..keep variables renamed to b:di_..keep variables
+ StopDrawIt() now insures that erase mode is off
+ 03/11/03 : included g:drawit_insertmode handling
+ 02/21/03 : included flood function
+ 12/11/02 : deletes trailing whitespace only if holer used
+ 8/27/02 : fat arrowheads included
+ : shift-arrow keys move but don't modify
+
+vim:tw=78:ts=8:ft=help
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/doc/pi_vimball.txt Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,137 @@
+*pi_vimball.txt* For Vim version 7.0. Last change: 2007 Jan 03
+
+ ----------------
+ Vimball Archiver
+ ----------------
+
+Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
+ (remove NOSPAM from Campbell's email first)
+Copyright: (c) 2004-2006 by Charles E. Campbell, Jr. *Vimball-copyright*
+ The VIM LICENSE applies to Vimball.vim, and Vimball.txt
+ (see |copyright|) except use "Vimball" instead of "Vim".
+ No warranty, express or implied.
+ Use At-Your-Own-Risk!
+
+==============================================================================
+1. Contents *vba* *vimball* *vimball-contents*
+
+ 1. Contents......................................: |vimball-contents|
+ 2. Vimball Manual................................: |vimball-manual|
+ MkVimball.....................................: |:MkVimball|
+ UseVimball....................................: |:UseVimball|
+ RmVimball.....................................: |:RmVimball|
+ 3. Vimball History...............................: |vimball-history|
+
+
+==============================================================================
+2. Vimball Manual *vimball-manual*
+
+ *:MkVimball*
+ :[range]MkVimball[!] filename [path]
+
+ The range is composed of lines holding paths to files to be included
+ in your new vimball. As an example: >
+ plugin/something.vim
+ doc/something.txt
+< using >
+ :[range]MkVimball filename
+<
+ on this range of lines will create a file called "filename.vba" which
+ can be used by Vimball.vim to re-create these files. If the
+ "filename.vba" file already exists, then MkVimball will issue a
+ warning and not create the file. Note that these paths are relative
+ to your .vim (vimfiles) directory, and the files should be in that
+ directory. The vimball plugin normally uses the first |'runtimepath'|
+ directory that exists as a prefix; don't use absolute paths, unless
+ the user has specified such a path.
+ *g:vimball_home*
+ You may override the use of the |'runtimepath'| by specifying a
+ variable, g:vimball_home.
+
+ If you use the exclamation point (!), then MkVimball will create the
+ "filename.vba" file, overwriting it if it already exists. This
+ behavior resembles that for |:w|.
+
+ *vimball-extract*
+ vim filename.vba
+
+ Simply editing a Vimball will cause Vimball.vim to tell the user to
+ source the file to extract its contents.
+
+ Extraction will only proceed if the first line of a putative vimball
+ file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
+ line.
+
+ :VimballList *:VimballList*
+
+ This command will tell Vimball to list the files in the archive, along
+ with their lengths in lines.
+
+ :UseVimball [path] *:UseVimball*
+
+ This command is contained within the vimball itself; it invokes the
+ vimball#Vimball() routine which is responsible for unpacking the
+ vimball. One may choose to execute it by hand instead of sourcing
+ the vimball; one may also choose to specify a path for the
+ installation, thereby overriding the automatic choice of the first
+ existing directory on the |'runtimepath'|.
+
+ :RmVimball vimballfile [path] *:RmVimball*
+
+ This command removes all files generated by the specified vimball
+ (but not any directories it may have made). One may choose a path
+ for de-installation, too (see |'runtimepath'|); otherwise, the
+ default is the first existing directory on the |'runtimepath'|.
+ To implement this, a file (.VimballRecord) is made in that directory
+ containing a record of what files need to be removed for all vimballs
+ used thus far.
+
+
+==============================================================================
+3. Vimball History *vimball-history* {{{1
+
+ 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
+ handling problem and it now changes \s to /s
+ 20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
+ removed.
+ 18 : Aug 01, 2006 * vimballs now use folding to easily display their
+ contents.
+ * if a user has AsNeeded/somefile, then vimball
+ will extract plugin/somefile to the AsNeeded/
+ directory
+ 17 : Jun 28, 2006 * changes all \s to /s internally for Windows
+ 16 : Jun 15, 2006 * A. Mechylynk's idea to allow users to specify
+ installation root paths implemented for
+ UseVimball, MkVimball, and RmVimball.
+ * RmVimball implemented
+ 15 : Jun 13, 2006 * bugfix
+ 14 : May 26, 2006 * bugfixes
+ 13 : May 01, 2006 * exists("&acd") used to determine if the acd
+ option exists
+ 12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
+ 11 : Apr 27, 2006 * VimballList would create missing subdirectories that
+ the vimball specified were needed. Fixed.
+ 10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
+ functions. Included some more settings in them
+ which frequently cause trouble.
+ 9 : Apr 26, 2006 * various changes to support Windows prediliction
+ for backslashes and spaces in file and directory
+ names.
+ 7 : Apr 25, 2006 * bypasses foldenable
+ * uses more exe and less norm! (:yank :put etc)
+ * does better at insuring a "Press ENTER" prompt
+ appears to keep its messages visible
+ 4 : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
+ only fires once, so the "Source this file..."
+ message is now issued only once.
+ 3 : Mar 20, 2006 * removed query, now requires sourcing to be
+ extracted (:so %). Message to that effect
+ included.
+ * :VimballList now shows files that would be
+ extracted.
+ 2 : Mar 20, 2006 * query, :UseVimball included
+ 1 : Mar 20, 2006 * initial release
+
+
+==============================================================================
+vim:tw=78:ts=8:ft=help:fdm=marker
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/doc/tags Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,33 @@
+:MkVimball pi_vimball.txt /*:MkVimball*
+:RmVimball pi_vimball.txt /*:RmVimball*
+:UseVimball pi_vimball.txt /*:UseVimball*
+:VimballList pi_vimball.txt /*:VimballList*
+Vimball-copyright pi_vimball.txt /*Vimball-copyright*
+drawit DrawIt.txt /*drawit*
+drawit-brush DrawIt.txt /*drawit-brush*
+drawit-contents DrawIt.txt /*drawit-contents*
+drawit-drawing DrawIt.txt /*drawit-drawing*
+drawit-erase DrawIt.txt /*drawit-erase*
+drawit-example DrawIt.txt /*drawit-example*
+drawit-history DrawIt.txt /*drawit-history*
+drawit-manual DrawIt.txt /*drawit-manual*
+drawit-modes DrawIt.txt /*drawit-modes*
+drawit-move DrawIt.txt /*drawit-move*
+drawit-moving DrawIt.txt /*drawit-moving*
+drawit-options DrawIt.txt /*drawit-options*
+drawit-protect DrawIt.txt /*drawit-protect*
+drawit-setbrush DrawIt.txt /*drawit-setbrush*
+drawit-setdrawit DrawIt.txt /*drawit-setdrawit*
+drawit-start DrawIt.txt /*drawit-start*
+drawit-stopping DrawIt.txt /*drawit-stopping*
+drawit-usage DrawIt.txt /*drawit-usage*
+drawit-visblock DrawIt.txt /*drawit-visblock*
+drawit.txt DrawIt.txt /*drawit.txt*
+g:vimball_home pi_vimball.txt /*g:vimball_home*
+pi_vimball.txt pi_vimball.txt /*pi_vimball.txt*
+vba pi_vimball.txt /*vba*
+vimball pi_vimball.txt /*vimball*
+vimball-contents pi_vimball.txt /*vimball-contents*
+vimball-extract pi_vimball.txt /*vimball-extract*
+vimball-history pi_vimball.txt /*vimball-history*
+vimball-manual pi_vimball.txt /*vimball-manual*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/cpp_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,26 @@
+"nach ~/.vim/ftplugin/
+"
+set equalprg=indent\ -kr
+
+nmap <C-G>f :call HS_format()<ENTER>
+
+command! Tidy :call HS_format()
+
+function! HS_format()
+
+ let dir = fnamemodify(expand("%"), ":p:h")
+" let rc = dir . "/.perltidyrc"
+" if filereadable(rc) != 1
+" echo "HEHE, no .perltidyrc in " . dir
+" return
+" endif
+
+ let old = &equalprg
+ let &equalprg = "indent -kr"
+ normal gg=G
+ normal ``
+ let &equalprg = old
+
+endfunc
+
+" vim:ft=vim:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/mail_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,5 @@
+set expandtab
+set ts=8
+set sw=4
+syntax on
+retab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/perl_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,39 @@
+"nach ~/.vim/ftplugin/
+"
+:setlocal
+set equalprg=perltidy\ -q
+
+nmap <C-G>f :call HS_format()<ENTER>
+nmap <C-G>p :call HS_pod()<ENTER>
+nmap <C-G>c :call HS_check()<ENTER>
+
+command! Tidy :call HS_format()
+command! Pod :call HS_pod()
+
+function! HS_check()
+ :w
+ :!perl -Mblib -c %
+endfunc
+
+function! HS_format()
+
+ let dir = fnamemodify(expand("%"), ":p:h")
+ let rc = dir . "/.perltidyrc"
+ if filereadable(rc) != 1
+ echo "HEHE, no .perltidyrc in " . dir
+ return
+ endif
+
+ let old = &equalprg
+ let &equalprg = "perltidy -pro=" . rc
+ normal gg=G
+ normal ``
+ let &equalprg = old
+
+endfunc
+
+function! HS_pod()
+ :!perldoc %
+endfunc
+
+" vim:ft=vim:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/pod_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,9 @@
+nmap <C-G>p :call HS_pod()<ENTER>
+
+command! Pod :call HS_pod()
+
+function! HS_pod()
+ :!perldoc %
+endfunc
+
+" vim:ft=vim:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/tex_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,1 @@
+set ts=2 sw=2 sts=2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/ftplugin/wiki2beamer_hs12.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,9 @@
+setlocal foldmethod=expr
+setlocal foldexpr=HeadingLevel(v:lnum)
+
+if !exists("*HeadingLevel")
+ function HeadingLevel(lnum)
+ let n = strlen(substitute(getline(a:lnum), '[^=].*', '', ''))
+ return (n == 0) ? '=' : '>' . n
+ endfunction
+endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/plugin/DrawItPlugin.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,64 @@
+" DrawItPlugin.vim: a simple way to draw things in Vim -- just put this file in
+" your plugin directory, use \di to start (\ds to stop), and
+" just move about using the cursor keys.
+"
+" You may also use visual-block mode to select endpoints and
+" draw lines, arrows, and ellipses.
+"
+" Date: Nov 01, 2005
+" Maintainer: Charles E. Campbell, Jr. (Charles.E.Campbell.1@gsfc.nasa.gov)
+" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" DrawIt.vim is provided *as is* and comes with no warranty
+" of any kind, either expressed or implied. By using this
+" plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
+"
+" Required: this script requires Vim 7.0 (or later) {{{1
+" To Enable: simply put this plugin into your ~/.vim/plugin directory {{{2
+"
+" GetLatestVimScripts: 40 1 :AutoInstall: DrawIt.vim
+"
+" Woe to her who is rebellious and polluted, the oppressing {{{1
+" city! She didn't obey the voice. She didn't receive correction.
+" She didn't trust in Yahweh. She didn't draw near to her God. (Zeph 3:1,2 WEB)
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if &cp || exists("g:loaded_DrawIt")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+" ---------------------------------------------------------------------
+" DrChip Menu Support: {{{1
+if has("gui_running") && has("menu") && &go =~ 'm'
+ if !exists("g:DrChipTopLvlMenu")
+ let g:DrChipTopLvlMenu= "DrChip."
+ endif
+ exe 'menu '.g:DrChipTopLvlMenu.'DrawIt.Start\ DrawIt<tab>\\di <Leader>di'
+endif
+
+" ---------------------------------------------------------------------
+" Public Interface: {{{1
+if !hasmapto('<Plug>StartDrawIt')
+ map <unique> <Leader>di <Plug>StartDrawIt
+endif
+map <silent> <Plug>StartDrawIt :set lz<cr>:call DrawIt#StartDrawIt()<cr>:set nolz<cr>
+com! -nargs=0 DIstart set lz|call DrawIt#StartDrawIt()|set nolz
+
+if !hasmapto('<Plug>StopDrawIt')
+ map <unique> <Leader>ds <Plug>StopDrawIt
+endif
+map <silent> <Plug>StopDrawIt :set lz<cr>:call DrawIt#StopDrawIt()<cr>:set nolz<cr>
+com! -nargs=0 DIstop set lz|call DrawIt#StopDrawIt()|set nolz
+
+" ---------------------------------------------------------------------
+" Cleanup And Modelines:
+" vim: fdm=marker
+let &cpo= s:keepcpo
+unlet s:keepcpo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/plugin/cecutil.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,464 @@
+" cecutil.vim : save/restore window position
+" save/restore mark position
+" save/restore selected user maps
+" Author: Charles E. Campbell, Jr.
+" Version: 15e ASTRO-ONLY
+" Date: Apr 10, 2006
+"
+" Saving Restoring Destroying Marks: {{{1
+" call SaveMark(markname) let savemark= SaveMark(markname)
+" call RestoreMark(markname) call RestoreMark(savemark)
+" call DestroyMark(markname)
+" commands: SM RM DM
+"
+" Saving Restoring Destroying Window Position: {{{1
+" call SaveWinPosn() let winposn= SaveWinPosn()
+" call RestoreWinPosn() call RestoreWinPosn(winposn)
+" \swp : save current window/buffer's position
+" \rwp : restore current window/buffer's previous position
+" commands: SWP RWP
+"
+" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
+"
+" You believe that God is one. You do well. The demons also {{{1
+" believe, and shudder. But do you want to know, vain man, that
+" faith apart from works is dead? (James 2:19,20 WEB)
+
+" Load Once: {{{1
+if &cp || exists("g:loaded_cecutil")
+ finish
+endif
+let g:loaded_cecutil = "v15e"
+let s:keepcpo = &cpo
+set cpo&vim
+"DechoVarOn
+
+" -----------------------
+" Public Interface: {{{1
+" -----------------------
+
+" Map Interface: {{{2
+if !hasmapto('<Plug>SaveWinPosn')
+ map <unique> <Leader>swp <Plug>SaveWinPosn
+endif
+if !hasmapto('<Plug>RestoreWinPosn')
+ map <unique> <Leader>rwp <Plug>RestoreWinPosn
+endif
+nmap <silent> <Plug>SaveWinPosn :call SaveWinPosn()<CR>
+nmap <silent> <Plug>RestoreWinPosn :call RestoreWinPosn()<CR>
+
+" Command Interface: {{{2
+com -bar -nargs=0 SWP call SaveWinPosn()
+com -bar -nargs=0 RWP call RestoreWinPosn()
+com -bar -nargs=1 SM call SaveMark(<q-args>)
+com -bar -nargs=1 RM call RestoreMark(<q-args>)
+com -bar -nargs=1 DM call DestroyMark(<q-args>)
+
+if v:version < 630
+ let s:modifier= "sil "
+else
+ let s:modifier= "sil keepj "
+endif
+
+" ---------------------------------------------------------------------
+" SaveWinPosn: {{{1
+" let winposn= SaveWinPosn() will save window position in winposn variable
+" call SaveWinPosn() will save window position in b:cecutil_winposn{b:cecutil_iwinposn}
+" let winposn= SaveWinPosn(0) will *only* save window position in winposn variable (no stacking done)
+fun! SaveWinPosn(...)
+" call Dfunc("SaveWinPosn() a:0=".a:0)
+ if line(".") == 1 && getline(1) == ""
+" call Dfunc("SaveWinPosn : empty buffer")
+ return ""
+ endif
+ let so_keep = &so
+ let siso_keep = &siso
+ let ss_keep = &ss
+ set so=0 siso=0 ss=0
+
+ let swline = line(".")
+ let swcol = col(".")
+ let swwline = winline() - 1
+ let swwcol = virtcol(".") - wincol()
+ let savedposn = "call GoWinbufnr(".winbufnr(0).")|silent ".swline
+ let savedposn = savedposn."|".s:modifier."norm! 0z\<cr>"
+ if swwline > 0
+ let savedposn= savedposn.":".s:modifier."norm! ".swwline."\<c-y>\<cr>"
+ endif
+ if swwcol > 0
+ let savedposn= savedposn.":".s:modifier."norm! 0".swwcol."zl\<cr>"
+ endif
+ let savedposn = savedposn.":".s:modifier."call cursor(".swline.",".swcol.")\<cr>"
+
+ " save window position in
+ " b:cecutil_winposn_{iwinposn} (stack)
+ " only when SaveWinPosn() is used
+ if a:0 == 0
+ if !exists("b:cecutil_iwinposn")
+ let b:cecutil_iwinposn= 1
+ else
+ let b:cecutil_iwinposn= b:cecutil_iwinposn + 1
+ endif
+" call Decho("saving posn to SWP stack")
+ let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn
+ endif
+
+ let &so = so_keep
+ let &siso = siso_keep
+ let &ss = ss_keep
+
+" if exists("b:cecutil_iwinposn") " Decho
+" call Decho("b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]")
+" else " Decho
+" call Decho("b:cecutil_iwinposn doesn't exist")
+" endif " Decho
+" call Dret("SaveWinPosn [".savedposn."]")
+ return savedposn
+endfun
+
+" ---------------------------------------------------------------------
+" RestoreWinPosn: {{{1
+fun! RestoreWinPosn(...)
+" call Dfunc("RestoreWinPosn() a:0=".a:0)
+" call Decho("getline(1)<".getline(1).">")
+" call Decho("line(.)=".line("."))
+ if line(".") == 1 && getline(1) == ""
+" call Dfunc("RestoreWinPosn : empty buffer")
+ return ""
+ endif
+ let so_keep = &so
+ let siso_keep = &siso
+ let ss_keep = &ss
+ set so=0 siso=0 ss=0
+
+ if a:0 == 0 || a:1 == ""
+ " use saved window position in b:cecutil_winposn{b:cecutil_iwinposn} if it exists
+ if exists("b:cecutil_iwinposn") && exists("b:cecutil_winposn{b:cecutil_iwinposn}")
+" call Decho("using stack b:cecutil_winposn{".b:cecutil_iwinposn."}<".b:cecutil_winposn{b:cecutil_iwinposn}.">")
+ try
+ exe "silent! ".b:cecutil_winposn{b:cecutil_iwinposn}
+ catch /^Vim\%((\a\+)\)\=:E749/
+ " ignore empty buffer error messages
+ endtry
+ " normally drop top-of-stack by one
+ " but while new top-of-stack doesn't exist
+ " drop top-of-stack index by one again
+ if b:cecutil_iwinposn >= 1
+ unlet b:cecutil_winposn{b:cecutil_iwinposn}
+ let b:cecutil_iwinposn= b:cecutil_iwinposn - 1
+ while b:cecutil_iwinposn >= 1 && !exists("b:cecutil_winposn{b:cecutil_iwinposn}")
+ let b:cecutil_iwinposn= b:cecutil_iwinposn - 1
+ endwhile
+ if b:cecutil_iwinposn < 1
+ unlet b:cecutil_iwinposn
+ endif
+ endif
+ else
+ echohl WarningMsg
+ echomsg "***warning*** need to SaveWinPosn first!"
+ echohl None
+ endif
+
+ else " handle input argument
+" call Decho("using input a:1<".a:1.">")
+ " use window position passed to this function
+ exe "silent ".a:1
+ " remove a:1 pattern from b:cecutil_winposn{b:cecutil_iwinposn} stack
+ if exists("b:cecutil_iwinposn")
+ let jwinposn= b:cecutil_iwinposn
+ while jwinposn >= 1 " search for a:1 in iwinposn..1
+ if exists("b:cecutil_winposn{jwinposn}") " if it exists
+ if a:1 == b:cecutil_winposn{jwinposn} " and the pattern matches
+ unlet b:cecutil_winposn{jwinposn} " unlet it
+ if jwinposn == b:cecutil_iwinposn " if at top-of-stack
+ let b:cecutil_iwinposn= b:cecutil_iwinposn - 1 " drop stacktop by one
+ endif
+ endif
+ endif
+ let jwinposn= jwinposn - 1
+ endwhile
+ endif
+ endif
+
+ " seems to be something odd: vertical motions after RWP
+ " cause jump to first column. Following fixes that
+ if wincol() > 1
+ silent norm! hl
+ elseif virtcol(".") < virtcol("$")
+ silent norm! lh
+ endif
+
+ let &so = so_keep
+ let &siso = siso_keep
+ let &ss = ss_keep
+
+" call Dret("RestoreWinPosn")
+endfun
+
+" ---------------------------------------------------------------------
+" GoWinbufnr: go to window holding given buffer (by number) {{{1
+" Prefers current window; if its buffer number doesn't match,
+" then will try from topleft to bottom right
+fun! GoWinbufnr(bufnum)
+" call Dfunc("GoWinbufnr(".a:bufnum.")")
+ if winbufnr(0) == a:bufnum
+" call Dret("GoWinbufnr : winbufnr(0)==a:bufnum")
+ return
+ endif
+ winc t
+ let first=1
+ while winbufnr(0) != a:bufnum && (first || winnr() != 1)
+ winc w
+ let first= 0
+ endwhile
+" call Dret("GoWinbufnr")
+endfun
+
+" ---------------------------------------------------------------------
+" SaveMark: sets up a string saving a mark position. {{{1
+" For example, SaveMark("a")
+" Also sets up a global variable, g:savemark_{markname}
+fun! SaveMark(markname)
+" call Dfunc("SaveMark(markname<".a:markname.">)")
+ let markname= a:markname
+ if strpart(markname,0,1) !~ '\a'
+ let markname= strpart(markname,1,1)
+ endif
+" call Decho("markname=".markname)
+
+ let lzkeep = &lz
+ set lz
+
+ if 1 <= line("'".markname) && line("'".markname) <= line("$")
+ let winposn = SaveWinPosn(0)
+ exe s:modifier."norm! `".markname
+ let savemark = SaveWinPosn(0)
+ let g:savemark_{markname} = savemark
+ let savemark = markname.savemark
+ call RestoreWinPosn(winposn)
+ else
+ let g:savemark_{markname} = ""
+ let savemark = ""
+ endif
+
+ let &lz= lzkeep
+
+" call Dret("SaveMark : savemark<".savemark.">")
+ return savemark
+endfun
+
+" ---------------------------------------------------------------------
+" RestoreMark: {{{1
+" call RestoreMark("a") -or- call RestoreMark(savemark)
+fun! RestoreMark(markname)
+" call Dfunc("RestoreMark(markname<".a:markname.">)")
+
+ if strlen(a:markname) <= 0
+" call Dret("RestoreMark : no such mark")
+ return
+ endif
+ let markname= strpart(a:markname,0,1)
+ if markname !~ '\a'
+ " handles 'a -> a styles
+ let markname= strpart(a:markname,1,1)
+ endif
+" call Decho("markname=".markname." strlen(a:markname)=".strlen(a:markname))
+
+ let lzkeep = &lz
+ set lz
+ let winposn = SaveWinPosn(0)
+
+ if strlen(a:markname) <= 2
+ if exists("g:savemark_{markname}") && strlen(g:savemark_{markname}) != 0
+ " use global variable g:savemark_{markname}
+" call Decho("use savemark list")
+ call RestoreWinPosn(g:savemark_{markname})
+ exe "norm! m".markname
+ endif
+ else
+ " markname is a savemark command (string)
+" call Decho("use savemark command")
+ let markcmd= strpart(a:markname,1)
+ call RestoreWinPosn(markcmd)
+ exe "norm! m".markname
+ endif
+
+ call RestoreWinPosn(winposn)
+ let &lz = lzkeep
+
+" call Dret("RestoreMark")
+endfun
+
+" ---------------------------------------------------------------------
+" DestroyMark: {{{1
+" call DestroyMark("a") -- destroys mark
+fun! DestroyMark(markname)
+" call Dfunc("DestroyMark(markname<".a:markname.">)")
+
+ " save options and set to standard values
+ let reportkeep= &report
+ let lzkeep = &lz
+ set lz report=10000
+
+ let markname= strpart(a:markname,0,1)
+ if markname !~ '\a'
+ " handles 'a -> a styles
+ let markname= strpart(a:markname,1,1)
+ endif
+" call Decho("markname=".markname)
+
+ let curmod = &mod
+ let winposn = SaveWinPosn(0)
+ 1
+ let lineone = getline(".")
+ exe "k".markname
+ d
+ put! =lineone
+ let &mod = curmod
+ call RestoreWinPosn(winposn)
+
+ " restore options to user settings
+ let &report = reportkeep
+ let &lz = lzkeep
+
+" call Dret("DestroyMark")
+endfun
+
+" ---------------------------------------------------------------------
+" ListWinPosn:
+"fun! ListWinPosn() " Decho
+" if !exists("b:cecutil_iwinposn") || b:cecutil_iwinposn == 0 " Decho
+" call Decho("nothing on SWP stack") " Decho
+" else " Decho
+" let jwinposn= b:cecutil_iwinposn " Decho
+" while jwinposn >= 1 " Decho
+" if exists("b:cecutil_winposn{jwinposn}") " Decho
+" call Decho("winposn{".jwinposn."}<".b:cecutil_winposn{jwinposn}.">") " Decho
+" else " Decho
+" call Decho("winposn{".jwinposn."} -- doesn't exist") " Decho
+" endif " Decho
+" let jwinposn= jwinposn - 1 " Decho
+" endwhile " Decho
+" endif " Decho
+"endfun " Decho
+"com! -nargs=0 LWP call ListWinPosn() " Decho
+
+" ---------------------------------------------------------------------
+" SaveUserMaps: this function sets up a script-variable (s:restoremap) {{{1
+" which can be used to restore user maps later with
+" call RestoreUserMaps()
+"
+" mapmode - see :help maparg for its list
+" ex. "n" = Normal
+" If the first letter is u, then unmapping will be done
+" ex. "un" = Normal + unmapping
+" mapchx - "<something>" handled as a single map item.
+" ex. "<left>"
+" - "string" a string of single letters which are actually
+" multiple two-letter maps (using the maplead:
+" maplead . each_character_in_string)
+" ex. maplead="\" and mapchx="abc" saves mappings for
+" \a, \b, and \c
+" Of course, if maplead is "", then for mapchx="abc",
+" mappings for a, b, and c are saved.
+" - :something handled as a single map item, w/o the ":"
+" ex. mapchx= ":abc" will save a mapping for "abc"
+" suffix - a string unique to your plugin
+" ex. suffix= "DrawIt"
+fun! SaveUserMaps(mapmode,maplead,mapchx,suffix)
+" call Dfunc("SaveUserMaps(mapmode<".a:mapmode."> maplead<".a:maplead."> mapchx<".a:mapchx."> suffix<".a:suffix.">)")
+
+ if !exists("s:restoremap_{a:suffix}")
+ " initialize restoremap_suffix to null string
+ let s:restoremap_{a:suffix}= ""
+ endif
+
+ " set up dounmap: if 1, then save and unmap (a:mapmode leads with a "u")
+ " if 0, save only
+ if a:mapmode =~ '^u'
+ let dounmap= 1
+ let mapmode= strpart(a:mapmode,1)
+ else
+ let dounmap= 0
+ let mapmode= a:mapmode
+ endif
+
+ " save single map :...something...
+ if strpart(a:mapchx,0,1) == ':'
+ let amap= strpart(a:mapchx,1)
+ if amap == "|" || amap == "\<c-v>"
+ let amap= "\<c-v>".amap
+ endif
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:silent! ".mapmode."unmap ".amap
+ if maparg(amap,mapmode) != ""
+ let maprhs= substitute(maparg(amap,mapmode),'|','<bar>','ge')
+" let maprhs= substitute(maprhs,'"<CR>',"\<cr>",'ge')
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:".mapmode."map ".amap." ".maprhs
+ endif
+ if dounmap
+ exe "silent! ".mapmode."unmap ".amap
+ endif
+
+ " save single map <something>
+ elseif strpart(a:mapchx,0,1) == '<'
+ let amap = a:mapchx
+ if amap == "|" || amap == "\<c-v>"
+ let amap= "\<c-v>".amap
+ endif
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".amap
+ if maparg(a:mapchx,mapmode) != ""
+ let maprhs= substitute(maparg(amap,mapmode),'|','<bar>','ge')
+" let maprhs= substitute(maprhs,'"<CR>',"\<cr>",'ge')
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".maprhs
+ endif
+ if dounmap
+ exe "silent! ".mapmode."unmap ".amap
+ endif
+
+ " save multiple maps
+ else
+ let i= 1
+ while i <= strlen(a:mapchx)
+ let amap= a:maplead.strpart(a:mapchx,i-1,1)
+ if amap == "|" || amap == "\<c-v>"
+ let amap= "\<c-v>".amap
+ endif
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".amap
+ if maparg(amap,mapmode) != ""
+ let maprhs= substitute(maparg(amap,mapmode),'|','<bar>','ge')
+" let maprhs= substitute(maprhs,'"<CR>',"\<cr>",'ge')
+ let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".maprhs
+ endif
+ if dounmap
+ exe "silent! ".mapmode."unmap ".amap
+ endif
+ let i= i + 1
+ endwhile
+ endif
+" call Dret("SaveUserMaps : restoremap_".a:suffix.": ".s:restoremap_{a:suffix})
+endfun
+
+" ---------------------------------------------------------------------
+" RestoreUserMaps: {{{1
+" Used to restore user maps saved by SaveUserMaps()
+fun! RestoreUserMaps(suffix)
+" call Dfunc("RestoreUserMaps(suffix<".a:suffix.">)")
+ if exists("s:restoremap_{a:suffix}")
+ let s:restoremap_{a:suffix}= substitute(s:restoremap_{a:suffix},'|\s*$','','e')
+ if s:restoremap_{a:suffix} != ""
+" call Decho("exe ".s:restoremap_{a:suffix})
+ exe "silent! s:restoremap_{a:suffix}"
+ endif
+ unlet s:restoremap_{a:suffix}
+ endif
+" call Dret("RestoreUserMaps")
+endfun
+
+" ---------------------------------------------------------------------
+" Restore: {{{1
+let &cpo= s:keepcpo
+unlet s:keepcpo
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim: ts=4 fdm=marker
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/plugin/cscope_maps.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,165 @@
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" CSCOPE settings for vim
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"
+" This file contains some boilerplate settings for vim's cscope interface,
+" plus some keyboard mappings that I've found useful.
+"
+" USAGE:
+" -- vim 6: Stick this file in your ~/.vim/plugin directory (or in a
+" 'plugin' directory in some other directory that is in your
+" 'runtimepath'.
+"
+" -- vim 5: Stick this file somewhere and 'source cscope.vim' it from
+" your ~/.vimrc file (or cut and paste it into your .vimrc).
+"
+" NOTE:
+" These key maps use multiple keystrokes (2 or 3 keys). If you find that vim
+" keeps timing you out before you can complete them, try changing your timeout
+" settings, as explained below.
+"
+" Happy cscoping,
+"
+" Jason Duell jduell@alumni.princeton.edu 2002/3/7
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+" This tests to see if vim was configured with the '--enable-cscope' option
+" when it was compiled. If it wasn't, time to recompile vim...
+if has("cscope")
+
+ """"""""""""" Standard cscope/vim boilerplate
+
+ " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t'
+ set cscopetag
+
+ " check cscope for definition of a symbol before checking ctags: set to 1
+ " if you want the reverse search order.
+ set csto=0
+
+ " add any cscope database in current directory
+ if filereadable("cscope.out")
+ cs add cscope.out
+ " else add the database pointed to by environment variable
+ elseif $CSCOPE_DB != ""
+ cs add $CSCOPE_DB
+ endif
+
+ " show msg when any other cscope db added
+ set cscopeverbose
+
+
+ """"""""""""" My cscope/vim key mappings
+ "
+ " The following maps all invoke one of the following cscope search types:
+ "
+ " 's' symbol: find all references to the token under cursor
+ " 'g' global: find global definition(s) of the token under cursor
+ " 'c' calls: find all calls to the function name under cursor
+ " 't' text: find all instances of the text under cursor
+ " 'e' egrep: egrep search for the word under cursor
+ " 'f' file: open the filename under cursor
+ " 'i' includes: find files that include the filename under cursor
+ " 'd' called: find functions that function under cursor calls
+ "
+ " Below are three sets of the maps: one set that just jumps to your
+ " search result, one that splits the existing vim window horizontally and
+ " diplays your search result in the new window, and one that does the same
+ " thing, but does a vertical split instead (vim 6 only).
+ "
+ " I've used CTRL-\ and CTRL-@ as the starting keys for these maps, as it's
+ " unlikely that you need their default mappings (CTRL-\'s default use is
+ " as part of CTRL-\ CTRL-N typemap, which basically just does the same
+ " thing as hitting 'escape': CTRL-@ doesn't seem to have any default use).
+ " If you don't like using 'CTRL-@' or CTRL-\, , you can change some or all
+ " of these maps to use other keys. One likely candidate is 'CTRL-_'
+ " (which also maps to CTRL-/, which is easier to type). By default it is
+ " used to switch between Hebrew and English keyboard mode.
+ "
+ " All of the maps involving the <cfile> macro use '^<cfile>$': this is so
+ " that searches over '#include <time.h>" return only references to
+ " 'time.h', and not 'sys/time.h', etc. (by default cscope will return all
+ " files that contain 'time.h' as part of their name).
+
+
+ " To do the first type of search, hit 'CTRL-\', followed by one of the
+ " cscope search types above (s,g,c,t,e,f,i,d). The result of your cscope
+ " search will be displayed in the current window. You can use CTRL-T to
+ " go back to where you were before the search.
+ "
+
+ nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
+ nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
+ nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
+
+
+ " Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type
+ " makes the vim window split horizontally, with search result displayed in
+ " the new window.
+ "
+ " (Note: earlier versions of vim may not have the :scs command, but it
+ " can be simulated roughly via:
+ " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR>
+
+ nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@>c :scs find c <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@>t :scs find t <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@>e :scs find e <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
+ nmap <C-@>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
+ nmap <C-@>d :scs find d <C-R>=expand("<cword>")<CR><CR>
+
+
+ " Hitting CTRL-space *twice* before the search type does a vertical
+ " split instead of a horizontal one (vim 6 and up only)
+ "
+ " (Note: you may wish to put a 'set splitright' in your .vimrc
+ " if you prefer the new window on the right instead of the left
+
+ nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@><C-@>g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
+ nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
+ nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
+ nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
+
+
+ """"""""""""" key map timeouts
+ "
+ " By default Vim will only wait 1 second for each keystroke in a mapping.
+ " You may find that too short with the above typemaps. If so, you should
+ " either turn off mapping timeouts via 'notimeout'.
+ "
+ "set notimeout
+ "
+ " Or, you can keep timeouts, by uncommenting the timeoutlen line below,
+ " with your own personal favorite value (in milliseconds):
+ "
+ "set timeoutlen=4000
+ "
+ " Either way, since mapping timeout settings by default also set the
+ " timeouts for multicharacter 'keys codes' (like <F1>), you should also
+ " set ttimeout and ttimeoutlen: otherwise, you will experience strange
+ " delays as vim waits for a keystroke after you hit ESC (it will be
+ " waiting to see if the ESC is actually part of a key code like <F1>).
+ "
+ "set ttimeout
+ "
+ " personally, I find a tenth of a second to work well for key code
+ " timeouts. If you experience problems and have a slow terminal or network
+ " connection, set it higher. If you don't set ttimeoutlen, the value for
+ " timeoutlent (default: 1000 = 1 second, which is sluggish) is used.
+ "
+ "set ttimeoutlen=100
+
+endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/plugin/vimballPlugin.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,36 @@
+" vimballPlugin : construct a file containing both paths and files
+" Author: Charles E. Campbell, Jr.
+" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.
+" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
+" (see |copyright|) except use "Vimball" instead of "Vim".
+" No warranty, express or implied.
+" *** *** Use At-Your-Own-Risk! *** ***
+"
+" (Rom 2:1 WEB) Therefore you are without excuse, O man, whoever you are who
+" judge. For in that which you judge another, you condemn yourself. For
+" you who judge practice the same things.
+" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if &cp || exists("g:loaded_vimballPlugin")
+ finish
+endif
+let g:loaded_vimballPlugin = 1
+let s:keepcpo = &cpo
+set cpo&vim
+
+" ------------------------------------------------------------------------------
+" Public Interface: {{{1
+com! -ra -complete=dir -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>)
+com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>)
+com! -na=0 VimballList call vimball#Vimball(0)
+com! -na=* -complete=dir RmVimball call vimball#RmVimball(<f-args>)
+au BufEnter *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))
+au BufEnter *.vba set noma bt=nofile fmr=[[[,]]] fdm=marker|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
+
+" =====================================================================
+" Restoration And Modelines: {{{1
+" vim: fdm=marker
+let &cpo= s:keepcpo
+unlet s:keepcpo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/spell/de.utf-8.add Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,459 @@
+Schlittermann
+Timeouts
+z
+B
+Buchungsanfragen
+Proxies
+Serverantwort
+Buchungsdatensätze
+Debian
+Sniffer
+Compot
+vim
+#ts
+#w
+#o
+€
+Nutzungseinführung
+Testbuchungen
+Buchungsausfällen
+Entwicklungsbibliotheken
+angeboten
+PXE
+Nagios
+Heartbeat
+TFTP
+Dienstübernahmen
+Wartungs
+Servicevertrag
+internet
+unix
+support
+Leistungserbringung
+Leistungsabhängige
+Folgemonats
+Widerspruchsrecht
+Leistungsverpflichtung
+Nutzungsbeginn
+Vertragsbeziehung
+Vertraulichkeitsverpflichtung
+Vertraulichkeitsvereinbarungen
+Tannenstr
+Plattenauslastung
+Plattendefekte
+Systemlast
+Protokollfiles
+Systemuhr
+POP3
+SSH
+Virenscannerlizenz
+Sicherheitsupdates
+Remote
+Störungsfall
+Systembetreuung
+Security
+SSL
+Lizenzkosten
+Konfigurationsänderungen
+Systemverantwortlichen
+Komponententausch
+Scripting
+Seviceverträge
+Kundennummern
+Bereitschaftspauschale
+Fahrtkostenabrechnungen
+Trainingshaus
+Serverbetreuung
+u
+ä
+o
+Symptombekämpfung
+a
+#
+Tannenstrasse
+Projektpreis
+CGI
+RRD
+#ur
+SATA
+Datentransport
+Sachsengarage
+Verlagsmarketing
+Systemadministration
+openBC
+#rob
+Dangries
+Wieczorek
+Gutscheinbestellformular
+Mailversand
+Gutscheinbestellung
+Partnerunternehmen
+Webpräsenz
+Herrn
+Timeout
+Traffic
+Mailadressen
+Mailadresse
+Vertragsversion
+Internetdienstleister
+Melderegister
+Netzwerkkarte
+Hosts
+Hotplug
+Versandkostenanteil
+OpenBC
+Eventbezeichungen
+Eventbezeichnungen
+eventabhängig
+Mouseover
+Versandkostenpauschale
+Pixelfoto
+hochzuladende
+Frühkaffee
+Kontaktformular
+Serverseite
+Kontaktwünsche
+reinlassen
+Plugins
+Exim
+Spammer
+Spamscanner
+DSI
+Tiscali
+Nacamar
+DENIC
+syslog
+logout
+exit
+Putty
+Root
+Affengriff
+root
+Rechnername
+Nutzerverwaltung
+Home
+Benutzerpasswort
+Gruppenzuordnung
+Gruppenzugehörigkeit
+Zielsystem
+Quellsystem
+Manualseiten
+Anmeldedaten
+Slaves
+PDC
+BDC
+WINS
+Redirect
+ldapvi
+F2
+F6
+#elmachine
+#ruppenverwaltung
+Gruppenverwaltung
+Nutzerliste
+SID
+Gruppeninformation
+Gruppenliste
+Mailservice
+Maildienste
+Mailpostfach
+Zugriffstatistik
+Serverstandort
+hochgeladen
+VoiceInterConnect
+Sarge
+stable
+Releasestand
+Nutzerkonten
+Drucksystem
+MySQL
+PostgreSQL
+CVS
+NTP
+Zeitservice
+Squid
+AntiVirus
+ClamAV
+Fetchmail
+AMaViS
+SpamAssassin
+Cyrus
+Adressvergabe
+Netzbereich
+Namensauflösung
+POSIX
+ACL
+Apache2
+Twiki
+serverseitig
+Serverstatus
+Überwachungstool
+Systemauslastung
+Spamd
+Daemon
+updates
+#ommandozeilenorientiert
+Backupsystem
+Volumes
+Die
+offsite
+Projektstände
+restaurierbar
+Fernzugriff
+Patches
+Serverkonfiguration
+Ereignisprotokolle
+Aktualisierbarkeit
+Funktionsänderungen
+USA
+Scripte
+Serversystemen
+Clientsystemen
+Überwachungstools
+Serviceverträge
+Mailboxen
+Mailstore
+Softwareverwaltung
+Zeitserver
+kommandozeilenorientiert
+Mailman
+Mailstorage
+Virentests
+TLS
+Masterdaten
+Zugangsdaten
+Objekttypen
+Mailgruppen
+Inbox
+UID
+Admin
+cyrus
+mailman
+Webmail
+Masseneintragungen
+Gruppenzuordnungen
+postmaster
+Funktionsadressen
+Neusetzen
+Nutzername
+Manualseite
+Aufrufmöglichkeiten
+Kurzreferenz
+Mailsystem
+Mailsystems
+Webinterface
+Weiterleitungsinformation
+#uß
+Weiterleitungsadresse
+Unterzweige
+Weiterleitungseintrag
+Gruppenname
+rollenbasiert
+Aliasmechanismus
+Nutzerobjekt
+Kühlwasserverlust
+Fachwerkstatt
+Originalteile
+Ústí
+Nutzergruppe
+Firmenprofil
+Kontaktseite
+Kontaktlinks
+Referenzseite
+Thumbnail
+Anlagengruppen
+Leistungsphasen
+Bearbeitungszeitraum
+Leistungspektrum
+#ebbasiertes
+webbasiertes
+PHP
+Layoutvorschläge
+Referenzpflegetool
+Spätverkaufs
+Dönerladen
+Nichtverfügbarkeit
+Spätshop
+Mietminderung
+Szeneviertel
+Toilettenersatz
+Spätshops
+Wochenanfang
+Stadtordnung
+#ächtiche
+History
+Bandsicherung
+Rücksicherung
+Flatrate
+Serverhousing
+Athlon
+Opteron
+Opterons
+Athlons
+preisintensiver
+Hardwareausfälle
+Kalenderquartalsende
+Serviceeinschränkungen
+Abrechnungseinheit
+Fälligkeitsmonat
+Supportleistungen
+HACC
+Loadbalancing
+HA
+Webservice
+Machbarkeitsstudien
+Tagekonto
+Leistungszeitpunkt
+Beratungs
+Supportvertrag
+Beratungsleistungen
+Folgemonaten
+Nichtabruf
+Monatsbeginn
+Vertragsende
+Systemüberwachung
+Netzadministration
+Marktglobalisierung
+Staatsbürgersolidarität
+kooperation
+Sonnenspaziergang
+Schulungsanfrage
+Clusterkonzepte
+Failoverlösungen
+LVS
+Clustersysteme
+#nschluß
+Bilderpool
+Listenpunkten
+Listeneintrag
+Listenpunkte
+Administrations
+Ausschreibungsseite
+Tabellenstruktur
+Jobangebot
+Pflegetools
+Ausführungsdatum
+OASIS
+RPC
+Designschwächen
+modulspezifischen
+Installationspakete
+Codereview
+Template
+Templates
+Kindprozesse
+Watchdog
+Logging
+Error
+Reporting
+Kindprozess
+Zugangskonzept
+zertifikatsbasiert
+remote
+Zertifikatsverwaltung
+Build
+Konfigurations
+Projektkenntnis
+Stundenbasis
+Abrechnungsmonat
+Zielerfüllung
+T€
+übergangsweise
+Sondertilgungsrecht
+Referenzclient
+Proof
+of
+Concept
+Referenzclients
+Projekttagen
+anlage
+Mailweiterleitung
+Virenabwehr
+Mailexchanger
+Fallback
+MX
+Solarwatt
+schlittermann
+ssl
+hh
+Dialer
+Exchanger
+merkur
+solarwatt
+DMZ
+Ausgangsserver
+Absenderüberprüfung
+Mailprogramme
+Angebotsnummer
+Hochverfügbarkeit
+Hochverfügbarkeitspärchen
+RAID1
+DRBD
+Hauptserver
+Backupserver
+Systeminstallation
+rsnapshot
+Domaincontroller
+Ausfalltests
+Protokollerweiterung
+DNSSEC
+Vorwärtsauflösung
+Angriffsszenarien
+Spoofing
+Poisoning
+IETF
+Resolvers
+Bind9
+Resolver
+dig
+Forwarder
+Query
+Portzuordnung
+Transaction
+Signatures
+TSIG
+Verschlüsselungsverfahren
+Zonentransfers
+Zeitstempel
+sichergestellt
+Vertrauensketten
+schlüsselbasierten
+GnuPG
+Nutzdaten
+DNSKEY
+Record
+Verschlüsselungsalgorithmus
+section
+Base64
+RRSIG
+Effizienzgründen
+RRset
+Gültigkeitszeit
+Chain
+ISC
+#ddresse
+Addresse/!
+#rspürnglich
+urspürnglich/!
+Records
+Address
+Toplevel
+options
+Lookaside
+Wichtung
+Traffics
+Malware
+Pilotinstallation
+Content
+Updateszenarien
+Blacklisting
+Connector
+HAVP
+Lachmuth
+jetzt
+regards
+from
+Germany
+Gruppenrichtlinie
+Protocol
+Discovery
Binary file .vim/spell/de.utf-8.add.spl has changed
Binary file .vim/spell/de.utf-8.spl has changed
Binary file .vim/spell/de.utf-8.sug has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/spell/en.utf-8.add Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,42 @@
+Schlittermann
+Heiko
+schlittermann
+internet
+unix
+Medizintechnik
+Ardenne
+Hochschule
+Technische
+Ilmenau
+Diplom
+Ingenieur
+Elektroprojekt
+VEB
+Abitur
+und
+Anlagenbau
+NVA
+GDR
+Exim
+Debian
+Mitsumi
+CDROM
+CGI
+middleware
+Exim4
+Bind9
+IPv4
+paragliding
+CMAS
+paraglider
+HTTPS
+OpenSSL
+GnuTLS
+Plugins
+Icinga
+Nagios
+SSL
+DNS
+DNSSec
+IMAP
+Dovecot
Binary file .vim/spell/en.utf-8.add.spl has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/syntax/asciidoc.vim Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,1 @@
+../../src/asciidoc/vim/syntax/asciidoc.vim
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/view/~=+public_html=+osten-ui=+Pages=+Evn.pm= Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,84 @@
+let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0
+argglobal
+setlocal autoindent
+setlocal autoread
+setlocal nobinary
+setlocal bufhidden=
+setlocal buflisted
+setlocal buftype=
+setlocal nocindent
+setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
+setlocal cinoptions=
+setlocal cinwords=if,else,while,do,for,switch
+setlocal comments=b:#
+setlocal commentstring=/*%s*/
+setlocal complete=.,w,b,u,t,i
+setlocal define=[^A-Za-z_]
+setlocal dictionary=
+setlocal nodiff
+setlocal equalprg=
+setlocal errorformat=
+setlocal noexpandtab
+if &filetype != 'perl'
+setlocal filetype=perl
+endif
+setlocal foldcolumn=0
+setlocal foldenable
+setlocal foldexpr=0
+setlocal foldignore=#
+setlocal foldlevel=0
+setlocal foldmarker={{{,}}}
+setlocal foldmethod=indent
+setlocal foldminlines=1
+setlocal foldnestmax=20
+setlocal foldtext=foldtext()
+setlocal formatoptions=crqol
+setlocal grepprg=
+setlocal iminsert=0
+setlocal imsearch=0
+setlocal include=\\<\\(use|require\\)\\s*
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','')
+setlocal indentexpr=
+setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
+setlocal noinfercase
+setlocal iskeyword=48-57,_,A-Z,a-z,:
+setlocal keymap=
+setlocal nolinebreak
+setlocal nolisp
+setlocal nolist
+setlocal makeprg=
+setlocal matchpairs=(:),{:},[:]
+setlocal modeline
+setlocal modifiable
+setlocal nrformats=octal,hex
+setlocal nonumber
+setlocal path=/usr/local/lib/perl/5.6.1,/usr/local/share/perl/5.6.1,/usr/lib/perl5,/usr/share/perl5,/usr/lib/perl/5.6.1,/usr/share/perl/5.6.1,/usr/local/lib/site_perl/i386-linux,/usr/local/lib/site_perl,,
+setlocal nopreviewwindow
+setlocal noreadonly
+setlocal noscrollbind
+setlocal shiftwidth=4
+setlocal noshortname
+setlocal smartindent
+setlocal softtabstop=4
+setlocal suffixesadd=
+setlocal swapfile
+if &syntax != ''
+setlocal syntax=
+endif
+setlocal tabstop=8
+setlocal tags=
+setlocal textwidth=72
+setlocal thesaurus=
+setlocal wrap
+setlocal wrapmargin=0
+23
+normal zo
+23
+normal zo
+let s:l = 34 - ((25 * winheight(0) + 11) / 22)
+if s:l < 1 | let s:l = 1 | endif
+exe s:l
+normal zt
+34
+normal 0
+let &so = s:so_save | let &siso = s:siso_save
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.vimrc Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,47 @@
+syntax on
+set modeline
+filetype plugin on
+
+set pastetoggle=<F12>
+set ts=8 sts=4 sw=4
+set autoindent
+set autowrite
+set textwidth=72
+set visualbell
+set linebreak
+set showbreak=»
+set listchars=tab:⇒·,trail:·
+set incsearch
+
+
+iabb <date> (<ENTER><ESC>O<ESC>!!date -I<ENTER>A)<ESC>JkgJEa
+iabb <mwst> <ESC>dd:r~/.templates/mwst<ENTER>}'^
+iabb <gpl> <ESC>dd:r~/.templates/gpl3<ENTER>'^
+iabb <sig> <ESC>dd:r~/.templates/sig<ENTER>'^
+iabb <s> <ESC>dd:r~/.templates/shortsig<ENTER>'^
+
+
+imap '' “
+imap ,, „
+imap ... …
+imap :-) ☺
+imap (.) (…)
+
+vmap gc :s/^/#/<ENTER>
+vmap gC :s/^#//<ENTER>
+
+"set cursorcolumn
+"set cursorline
+hi CursorLine cterm=none ctermbg=7
+" let perl_include_pod=1
+"
+
+fun! ShowFuncName()
+ let lnum = line(".")
+ let col = col(".")
+ echohl ModeMsg
+ echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
+ echohl None
+ call search("\\%" . lnum . "l" . "\\%" . col . "c")
+endfun
+cmap ,f :call ShowFuncName() <CR>