aboutsummaryrefslogtreecommitdiff
path: root/vim
diff options
context:
space:
mode:
authorVasil Zlatanov <vasil.zlatanov@gmail.com>2015-08-18 01:54:42 +0200
committerVasil Zlatanov <vasil.zlatanov@gmail.com>2015-08-18 01:54:42 +0200
commite26958b154d0457c1019bc48a5ff0ed637cf3eac (patch)
treed11a37bb0e2a6916b3ffb421aab9cf68e5f3bba6 /vim
parent9d56811c86e81cbc70f03cde70e5a62378c187ef (diff)
downloaddotfiles-e26958b154d0457c1019bc48a5ff0ed637cf3eac.tar.gz
dotfiles-e26958b154d0457c1019bc48a5ff0ed637cf3eac.tar.bz2
dotfiles-e26958b154d0457c1019bc48a5ff0ed637cf3eac.zip
update vim
Diffstat (limited to 'vim')
-rw-r--r--vim/autoload/DrawIt.vim2921
-rw-r--r--vim/autoload/pathogen.vim344
-rw-r--r--vim/boxdraw/bdua2b.pl91
-rw-r--r--vim/boxdraw/bdub2a.pl30
-rw-r--r--vim/boxdraw/boxdraw.txt164
-rw-r--r--vim/boxdraw/boxdraw.vim291
-rw-r--r--vim/boxdraw/outline.pl74
-rw-r--r--vim/boxdraw/sampler.txt13
-rw-r--r--vim/colors/solarized.vim1117
l---------vim/compiler/tex.vim1
-rw-r--r--vim/doc/DrawIt.txt489
l---------vim/doc/imaps.txt.gz1
l---------vim/doc/latex-suite-quickstart.txt.gz1
l---------vim/doc/latex-suite.txt.gz1
l---------vim/doc/latexhelp.txt.gz1
-rw-r--r--vim/doc/surround.txt205
-rw-r--r--vim/doc/tags56
-rw-r--r--vim/filetype.vim4
l---------vim/ftplugin/bib_latexSuite.vim1
l---------vim/ftplugin/latex-suite/bibtex.vim1
l---------vim/ftplugin/latex-suite/bibtools.py1
-rw-r--r--vim/ftplugin/latex-suite/bibtools.pycbin6826 -> 0 bytes
l---------vim/ftplugin/latex-suite/brackets.vim1
l---------vim/ftplugin/latex-suite/compiler.vim1
l---------vim/ftplugin/latex-suite/custommacros.vim1
l---------vim/ftplugin/latex-suite/diacritics.vim1
l---------vim/ftplugin/latex-suite/dictionaries/SIunits1
l---------vim/ftplugin/latex-suite/dictionaries/dictionary1
l---------vim/ftplugin/latex-suite/elementmacros.vim1
l---------vim/ftplugin/latex-suite/envmacros.vim1
l---------vim/ftplugin/latex-suite/folding.vim1
l---------vim/ftplugin/latex-suite/macros/example1
l---------vim/ftplugin/latex-suite/main.vim1
l---------vim/ftplugin/latex-suite/mathmacros-utf.vim1
l---------vim/ftplugin/latex-suite/mathmacros.vim1
l---------vim/ftplugin/latex-suite/multicompile.vim1
l---------vim/ftplugin/latex-suite/outline.py1
-rw-r--r--vim/ftplugin/latex-suite/outline.pycbin4089 -> 0 bytes
l---------vim/ftplugin/latex-suite/packages.vim1
l---------vim/ftplugin/latex-suite/packages/SIunits1
l---------vim/ftplugin/latex-suite/packages/accents1
l---------vim/ftplugin/latex-suite/packages/acromake1
l---------vim/ftplugin/latex-suite/packages/afterpage1
l---------vim/ftplugin/latex-suite/packages/alltt1
l---------vim/ftplugin/latex-suite/packages/amsmath1
l---------vim/ftplugin/latex-suite/packages/amsthm1
l---------vim/ftplugin/latex-suite/packages/amsxtra1
l---------vim/ftplugin/latex-suite/packages/arabic1
l---------vim/ftplugin/latex-suite/packages/array1
l---------vim/ftplugin/latex-suite/packages/babel1
l---------vim/ftplugin/latex-suite/packages/bar1
l---------vim/ftplugin/latex-suite/packages/biblatex1
l---------vim/ftplugin/latex-suite/packages/bm1
l---------vim/ftplugin/latex-suite/packages/bophook1
l---------vim/ftplugin/latex-suite/packages/boxedminipage1
l---------vim/ftplugin/latex-suite/packages/caption21
l---------vim/ftplugin/latex-suite/packages/cases1
l---------vim/ftplugin/latex-suite/packages/ccaption1
l---------vim/ftplugin/latex-suite/packages/changebar1
l---------vim/ftplugin/latex-suite/packages/chapterbib1
l---------vim/ftplugin/latex-suite/packages/cite1
l---------vim/ftplugin/latex-suite/packages/color1
l---------vim/ftplugin/latex-suite/packages/comma1
l---------vim/ftplugin/latex-suite/packages/csquotes1
l---------vim/ftplugin/latex-suite/packages/deleq1
l---------vim/ftplugin/latex-suite/packages/drftcite1
l---------vim/ftplugin/latex-suite/packages/dropping1
l---------vim/ftplugin/latex-suite/packages/enumerate1
l---------vim/ftplugin/latex-suite/packages/eqlist1
l---------vim/ftplugin/latex-suite/packages/eqparbox1
l---------vim/ftplugin/latex-suite/packages/everyshi1
l---------vim/ftplugin/latex-suite/packages/exmpl1
l---------vim/ftplugin/latex-suite/packages/fixme1
l---------vim/ftplugin/latex-suite/packages/flafter1
l---------vim/ftplugin/latex-suite/packages/float1
l---------vim/ftplugin/latex-suite/packages/floatflt1
l---------vim/ftplugin/latex-suite/packages/fn2end1
l---------vim/ftplugin/latex-suite/packages/footmisc1
l---------vim/ftplugin/latex-suite/packages/geometry1
l---------vim/ftplugin/latex-suite/packages/german1
l---------vim/ftplugin/latex-suite/packages/graphicx1
l---------vim/ftplugin/latex-suite/packages/graphpap1
l---------vim/ftplugin/latex-suite/packages/harpoon1
l---------vim/ftplugin/latex-suite/packages/hhline1
l---------vim/ftplugin/latex-suite/packages/histogram1
l---------vim/ftplugin/latex-suite/packages/hyperref1
l---------vim/ftplugin/latex-suite/packages/ifthen1
l---------vim/ftplugin/latex-suite/packages/inputenc1
l---------vim/ftplugin/latex-suite/packages/letterspace1
l---------vim/ftplugin/latex-suite/packages/lineno1
l---------vim/ftplugin/latex-suite/packages/longtable1
l---------vim/ftplugin/latex-suite/packages/lscape1
l---------vim/ftplugin/latex-suite/packages/manyfoot1
l---------vim/ftplugin/latex-suite/packages/moreverb1
l---------vim/ftplugin/latex-suite/packages/multibox1
l---------vim/ftplugin/latex-suite/packages/multicol1
l---------vim/ftplugin/latex-suite/packages/newalg1
l---------vim/ftplugin/latex-suite/packages/ngerman1
l---------vim/ftplugin/latex-suite/packages/numprint1
l---------vim/ftplugin/latex-suite/packages/oldstyle1
l---------vim/ftplugin/latex-suite/packages/outliner1
l---------vim/ftplugin/latex-suite/packages/overcite1
l---------vim/ftplugin/latex-suite/packages/pagenote1
l---------vim/ftplugin/latex-suite/packages/parallel1
l---------vim/ftplugin/latex-suite/packages/plain1
l---------vim/ftplugin/latex-suite/packages/plates1
l---------vim/ftplugin/latex-suite/packages/polski1
l---------vim/ftplugin/latex-suite/packages/psgo1
l---------vim/ftplugin/latex-suite/packages/schedule1
l---------vim/ftplugin/latex-suite/packages/textfit1
l---------vim/ftplugin/latex-suite/packages/times1
l---------vim/ftplugin/latex-suite/packages/tipa1
l---------vim/ftplugin/latex-suite/packages/ulem1
l---------vim/ftplugin/latex-suite/packages/url1
l---------vim/ftplugin/latex-suite/packages/verbatim1
l---------vim/ftplugin/latex-suite/packages/version1
l---------vim/ftplugin/latex-suite/projecttemplate.vim1
l---------vim/ftplugin/latex-suite/pytools.py1
l---------vim/ftplugin/latex-suite/smartspace.vim1
l---------vim/ftplugin/latex-suite/templates.vim1
l---------vim/ftplugin/latex-suite/templates/IEEEtran.tex1
l---------vim/ftplugin/latex-suite/templates/article.tex1
l---------vim/ftplugin/latex-suite/templates/report.tex1
l---------vim/ftplugin/latex-suite/templates/report_two_column.tex1
l---------vim/ftplugin/latex-suite/texmenuconf.vim1
l---------vim/ftplugin/latex-suite/texproject.vim1
l---------vim/ftplugin/latex-suite/texrc1
l---------vim/ftplugin/latex-suite/texviewer.vim1
l---------vim/ftplugin/latex-suite/version.vim1
l---------vim/ftplugin/latex-suite/wizardfuncs.vim1
l---------vim/ftplugin/tex_latexSuite.vim1
l---------vim/indent/tex.vim1
-rw-r--r--vim/plugin/DrawItPlugin.vim76
l---------vim/plugin/SyntaxFolds.vim1
-rw-r--r--vim/plugin/cecutil.vim536
l---------vim/plugin/filebrowser.vim1
l---------vim/plugin/imaps.vim1
l---------vim/plugin/libList.vim1
l---------vim/plugin/remoteOpen.vim1
-rw-r--r--vim/plugin/surround.vim588
140 files changed, 0 insertions, 7121 deletions
diff --git a/vim/autoload/DrawIt.vim b/vim/autoload/DrawIt.vim
deleted file mode 100644
index 89f6ad5..0000000
--- a/vim/autoload/DrawIt.vim
+++ /dev/null
@@ -1,2921 +0,0 @@
-" DrawIt.vim: a simple way to draw things in Vim
-"
-" Maintainer: Charles E. Campbell
-" Authors: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz> - NOSPAM
-" Sylvain Viart (molo@multimania.com)
-" Version: 13
-" Date: Nov 25, 2013
-"
-" 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-2012 Charles E. Campbell {{{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 g:loaded_DrawIt= "v13"
-if v:version < 700
- echohl WarningMsg
- echo "***warning*** this version of DrawIt needs vim 7.0"
- echohl Normal
- finish
-endif
-let s:keepcpo= &cpo
-set cpo&vim
-scriptencoding utf-8
-
-" ---------------------------------------------------------------------
-" Script Variables: {{{1
-if !exists("g:drawit_xstrlen")
- if exists("g:Align_xstrlen")
- let g:drawit_xstrlen= g:Align_xstrlen
- elseif exists("g:netrw_xstrlen")
- let g:drawit_xstrlen= g:netrw_xstrlen
- elseif &enc == "latin1" || !has("multi_byte")
- let g:drawit_xstrlen= 0
- else
- let g:drawit_xstrlen= 1
- endif
-endif
-if !exists("g:drawit_mode")
- let g:drawit_mode= 'N' " other options: =S (single-line utf-*,cp437) or =D (double-line utf-*,cp437)
-endif
-if !exists("s:saveposn_count")
- let s:saveposn_count= 0
-endif
-"DechoTabOn
-
-" =====================================================================
-" DrawIt Functions: (by Charles E. Campbell) {{{1
-" =====================================================================
-
-" ---------------------------------------------------------------------
-" DrawIt#DrawItStart: this function maps the cursor keys, sets up default {{{2
-" drawing characters, and makes some settings
-fun! DrawIt#DrawItStart(...)
-" call Dfunc("DrawItStart()")
-
- if a:0 > 0
- if exists("b:di_gfxchr") && b:di_gfxchr && (a:1 == 'S' || a:1 == 's')
- DIsngl
- elseif exists("b:di_gfxchr") && b:di_gfxchr && (a:1 == 'D' || a:1 == 'd')
- DIdbl
- elseif !exists("g:drawit_mode")
- let g:drawit_mode= 'N'
- endif
- endif
-
- " DrawItStart: report on [DrawIt] mode {{{3
- if exists("b:dodrawit") && b:dodrawit == 1
- " already in DrawIt mode
- echo "[DrawIt] (already on, use ".((exists("mapleader") && mapleader != "")? mapleader : '\')."ds to stop)"
-" call Dret("DrawItStart")
- return
- endif
- let b:dodrawit= 1
-
- " indicate in DrawIt mode
- echo "[DrawIt]"
-
- " DrawItStart: turn on mouse {{{3
- if !exists("b:drawit_keep_mouse")
- let b:drawit_keep_mouse= &mouse
- endif
- setl mouse=a
-
- " DrawItStart: set up DrawIt commands {{{3
- com! -nargs=1 -range SetBrush <line1>,<line2>call DrawIt#SetBrush(<q-args>)
- com! -count Canvas call s:Spacer(line("."),line(".") + <count> - 1,0)
-
- " DrawItStart: 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")|let b:di_upright = "/" |endif " same as downleft
- if !exists("b:di_upleft") |let b:di_upleft = "\\"|endif " same as downright
- if !exists("b:di_cross") |let b:di_cross = "X" |endif
- if !exists("b:di_ellipse")|let b:di_ellipse = '*' |endif
-
- let b:di_gfxchr= 1
- if &enc == 'utf-8' || &enc == 'utf-16' || &enc == "ucs-4"
- " Box drawing characters using unicode
- " │ ─ ┌ ┠└ ┘ ┬ ┴ ├ ┤ ┼ ╱ ╲ ╳
- " ║ ╠╔ ╗ ╚ ╠╦ ╩ ╠ ╣ ╬
-" call Decho("box drawing characters using unicode")
- if !exists("b:di_Svert") |let b:di_Svert = '│' |endif
- if !exists("b:di_Dvert") |let b:di_Dvert = 'â•‘' |endif
- if !exists("b:di_Shoriz") |let b:di_Shoriz = '─' |endif
- if !exists("b:di_Dhoriz") |let b:di_Dhoriz = 'â•' |endif
- if !exists("b:di_Sulcorn") |let b:di_Sulcorn = '┌' |endif
- if !exists("b:di_Dulcorn") |let b:di_Dulcorn = 'â•”' |endif
- if !exists("b:di_Surcorn") |let b:di_Surcorn = 'â”' |endif
- if !exists("b:di_Durcorn") |let b:di_Durcorn = 'â•—' |endif
- if !exists("b:di_Sllcorn") |let b:di_Sllcorn = 'â””' |endif
- if !exists("b:di_Dllcorn") |let b:di_Dllcorn = 'â•š' |endif
- if !exists("b:di_Slrcorn") |let b:di_Slrcorn = '┘' |endif
- if !exists("b:di_Dlrcorn") |let b:di_Dlrcorn = 'â•' |endif
- if !exists("b:di_Splus") |let b:di_Splus = '┼' |endif
- if !exists("b:di_Dplus") |let b:di_Dplus = '╬' |endif
- if !exists("b:di_Sdnplus") |let b:di_Sdnplus = '┬' |endif
- if !exists("b:di_Ddnplus") |let b:di_Ddnplus = '╦' |endif
- if !exists("b:di_Supplus") |let b:di_Supplus = 'â”´' |endif
- if !exists("b:di_Dupplus") |let b:di_Dupplus = 'â•©' |endif
- if !exists("b:di_Slplus") |let b:di_Slplus = '┤' |endif
- if !exists("b:di_Dlplus") |let b:di_Dlplus = 'â•£' |endif
- if !exists("b:di_Srplus") |let b:di_Srplus = '├' |endif
- if !exists("b:di_Drplus") |let b:di_Drplus = 'â• ' |endif
- if !exists("b:di_Supright")|let b:di_Supright= "╱" |endif " same as Sdownleft
- if !exists("b:di_Supleft") |let b:di_Supleft = "╲" |endif " same as Sdownright
- if !exists("b:di_Scross") |let b:di_Scross = "╳" |endif
-
- " Mixed Single-Double unicode box drawing characters
- " ╞ ╟ ╡ ╢ ╤ ╥ ╧ ╪ ╫
- if !exists("b:di_DhSd") |let b:di_DhSd = '╤' |endif
- if !exists("b:di_DhSu") |let b:di_DhSu = '╧' |endif
- if !exists("b:di_DuSl") |let b:di_DuSl = 'â•¢' |endif
- if !exists("b:di_DuSlr") |let b:di_DuSlr= 'â•«' |endif
- if !exists("b:di_DuSr") |let b:di_DuSr = 'â•Ÿ' |endif
- if !exists("b:di_ShDd") |let b:di_ShDd = 'â•¥' |endif
- if !exists("b:di_ShDu") |let b:di_ShDu = '╨' |endif
- if !exists("b:di_SuDl") |let b:di_SuDl = 'â•¡' |endif
- if !exists("b:di_SuDlr") |let b:di_SuDlr= '╪' |endif
- if !exists("b:di_SdDh") |let b:di_SdDh = '╤' |endif
- if !exists("b:di_SuDh") |let b:di_SuDh = '╧' |endif
- if !exists("b:di_SuDr") |let b:di_SuDr = 'â•ž' |endif
-
- " Mixed Single-Double unicode box drawing corner characters
- " ╒ ╓ ╕ ╖ ╘ ╙ ╛ ╜
- if !exists("b:di_cSdDr")| let b:di_cSdDr= 'â•’'| endif
- if !exists("b:di_cDdSr")| let b:di_cDdSr= 'â•“'| endif
- if !exists("b:di_cDlSd")| let b:di_cDlSd= 'â••'| endif
- if !exists("b:di_cSlDd")| let b:di_cSlDd= 'â•–'| endif
- if !exists("b:di_cDrSu")| let b:di_cDrSu= '╘'| endif
- if !exists("b:di_cSrDu")| let b:di_cSrDu= 'â•™'| endif
- if !exists("b:di_cDlSu")| let b:di_cDlSu= 'â•›'| endif
- if !exists("b:di_cSlDu")| let b:di_cSlDu= '╜'| endif
-
- elseif &enc == 'cp437'
- " Box drawing characters using cp437 (dos)
-" call Decho("box drawing characters using cp437")
- if !exists("b:di_Svert") |let b:di_Svert = nr2char(179) |endif " │
- if !exists("b:di_Dvert") |let b:di_Dvert = nr2char(186) |endif " â•‘
- if !exists("b:di_Shoriz") |let b:di_Shoriz = nr2char(196) |endif " ─
- if !exists("b:di_Dhoriz") |let b:di_Dhoriz = nr2char(205) |endif " â•
- if !exists("b:di_Sulcorn") |let b:di_Sulcorn = nr2char(218) |endif " ┌
- if !exists("b:di_Dulcorn") |let b:di_Dulcorn = nr2char(201) |endif " â•”
- if !exists("b:di_Surcorn") |let b:di_Surcorn = nr2char(191) |endif " â”
- if !exists("b:di_Durcorn") |let b:di_Durcorn = nr2char(187) |endif " â•—
- if !exists("b:di_Sllcorn") |let b:di_Sllcorn = nr2char(192) |endif " â””
- if !exists("b:di_Dllcorn") |let b:di_Dllcorn = nr2char(200) |endif " â•š
- if !exists("b:di_Slrcorn") |let b:di_Slrcorn = nr2char(217) |endif " ┘
- if !exists("b:di_Dlrcorn") |let b:di_Dlrcorn = nr2char(188) |endif " â•
- if !exists("b:di_Splus") |let b:di_Splus = nr2char(197) |endif " ┼
- if !exists("b:di_Dplus") |let b:di_Dplus = nr2char(206) |endif " ╬
- if !exists("b:di_Sdnplus") |let b:di_Sdnplus = nr2char(194) |endif " ┬
- if !exists("b:di_Ddnplus") |let b:di_Ddnplus = nr2char(203) |endif " ╦
- if !exists("b:di_Supplus") |let b:di_Supplus = nr2char(193) |endif " â”´
- if !exists("b:di_Dupplus") |let b:di_Dupplus = nr2char(202) |endif " â•©
- if !exists("b:di_Slplus") |let b:di_Slplus = nr2char(180) |endif " ┤
- if !exists("b:di_Dlplus") |let b:di_Dlplus = nr2char(185) |endif " â•£
- if !exists("b:di_Srplus") |let b:di_Srplus = nr2char(195) |endif " ├
- if !exists("b:di_Drplus") |let b:di_Drplus = nr2char(204) |endif " â• 
- if !exists("b:di_Supright")|let b:di_Supright= '/' |endif " ╱
- if !exists("b:di_Supleft") |let b:di_Supleft = '\' |endif " ╲
- if !exists("b:di_Scross") |let b:di_Scross = 'X' |endif " ╳
-
- " Mixed Single-Double cp437 box drawing characters
- if !exists("b:di_DhSd") |let b:di_DhSd = nr2char(209)|endif " ╤
- if !exists("b:di_DhSu") |let b:di_DhSu = nr2char(207)|endif " ╧
- if !exists("b:di_DuSl") |let b:di_DuSl = nr2char(182)|endif " â•¢
- if !exists("b:di_DuSlr") |let b:di_DuSlr= nr2char(215)|endif " â•«
- if !exists("b:di_DuSr") |let b:di_DuSr = nr2char(199)|endif " â•Ÿ
- if !exists("b:di_ShDd") |let b:di_ShDd = nr2char(210)|endif " â•¥
- if !exists("b:di_ShDu") |let b:di_ShDu = nr2char(208)|endif " ╨
- if !exists("b:di_SuDl") |let b:di_SuDl = nr2char(181)|endif " â•¡
- if !exists("b:di_SuDlr") |let b:di_SuDlr= nr2char(216)|endif " ╪
- if !exists("b:di_SdDh") |let b:di_SdDh = nr2char(209)|endif " ╤
- if !exists("b:di_SuDh") |let b:di_SuDh = nr2char(207)|endif " ╧
- if !exists("b:di_SuDr") |let b:di_SuDr = nr2char(198)|endif " â•ž
-
- " Mixed Single-Double cp437 box drawing corner characters
- if !exists("b:di_cSdDr")| let b:di_cSdDr= nr2char(213)| endif " â•’
- if !exists("b:di_cDdSr")| let b:di_cDdSr= nr2char(214)| endif " â•“
- if !exists("b:di_cDlSd")| let b:di_cDlSd= nr2char(184)| endif " â••
- if !exists("b:di_cSlDd")| let b:di_cSlDd= nr2char(183)| endif " â•–
- if !exists("b:di_cDrSu")| let b:di_cDrSu= nr2char(212)| endif " ╘
- if !exists("b:di_cSrDu")| let b:di_cSrDu= nr2char(211)| endif " â•™
- if !exists("b:di_cDlSu")| let b:di_cDlSu= nr2char(190)| endif " â•›
- if !exists("b:di_cSlDu")| let b:di_cSlDu= nr2char(189)| endif " ╜
-
- else
-" call Decho("regular box drawing characters only")
- let b:di_gfxchr = 0
- endif
-
- " set up initial DrawIt behavior (as opposed to erase behavior)
- let b:di_erase = 0
-
- call s:DrawItSaveUserSettings()
-
- " DrawItStart: save and unmap user maps {{{3
- let b:lastdir = 1
- if exists("mapleader")
- let usermaplead = mapleader
- else
- let usermaplead = "\\"
- endif
- call SaveUserMaps("bn","","><^v","DrawIt")
- call SaveUserMaps("bv",usermaplead,"abceflsy","DrawIt")
- call SaveUserMaps("bn","","<c-v>","DrawIt")
- call SaveUserMaps("bn",usermaplead,"h><v^","DrawIt")
- call SaveUserMaps("bn","","<left>","DrawIt")
- call SaveUserMaps("bn","","<right>","DrawIt")
- call SaveUserMaps("bn","","<up>","DrawIt")
- call SaveUserMaps("bn","","<down>","DrawIt")
- call SaveUserMaps("bn","","<left>","DrawIt")
- call SaveUserMaps("bn","","<s-right>","DrawIt")
- call SaveUserMaps("bn","","<s-up>","DrawIt")
- call SaveUserMaps("bn","","<s-down>","DrawIt")
- call SaveUserMaps("bn","","<space>","DrawIt")
- call SaveUserMaps("bn","","<home>","DrawIt")
- call SaveUserMaps("bn","","<end>","DrawIt")
- call SaveUserMaps("bn","","<pageup>","DrawIt")
- call SaveUserMaps("bn","","<pagedown>","DrawIt")
- call SaveUserMaps("bn","","<c-leftdrag>","DrawIt")
- call SaveUserMaps("bn","","<c-leftmouse>","DrawIt")
- call SaveUserMaps("bn","","<c-leftrelease>","DrawIt")
- call SaveUserMaps("bn","","<leftdrag>","DrawIt")
- call SaveUserMaps("bn","","<leftmouse>","DrawIt")
- call SaveUserMaps("bn","","<middlemouse>","DrawIt")
- call SaveUserMaps("bn","","<rightmouse>","DrawIt")
- call SaveUserMaps("bn","","<s-leftdrag>","DrawIt")
- call SaveUserMaps("bn","","<s-leftmouse>","DrawIt")
- call SaveUserMaps("bn","","<s-leftrelease>","DrawIt")
- call SaveUserMaps("bv","","<c-leftmouse>","DrawIt")
- call SaveUserMaps("bv","","<leftmouse>","DrawIt")
- call SaveUserMaps("bv","","<middlemouse>","DrawIt")
- call SaveUserMaps("bv","","<rightmouse>","DrawIt")
- call SaveUserMaps("bv","","<s-leftmouse>","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pa","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pb","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pc","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pd","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pe","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pf","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pg","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ph","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pi","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pj","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pk","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pl","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pm","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pn","DrawIt")
- call SaveUserMaps("bn",usermaplead,":po","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pp","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pq","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pr","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ps","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pt","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pu","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pv","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pw","DrawIt")
- call SaveUserMaps("bn",usermaplead,":px","DrawIt")
- call SaveUserMaps("bn",usermaplead,":py","DrawIt")
- call SaveUserMaps("bn",usermaplead,":pz","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ra","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rb","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rc","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rd","DrawIt")
- call SaveUserMaps("bn",usermaplead,":re","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rf","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rg","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rh","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ri","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rj","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rk","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rl","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rm","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rn","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ro","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rp","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rq","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rr","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rs","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rt","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ru","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rv","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rw","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rx","DrawIt")
- call SaveUserMaps("bn",usermaplead,":ry","DrawIt")
- call SaveUserMaps("bn",usermaplead,":rz","DrawIt")
- if exists("g:drawit_insertmode") && g:drawit_insertmode
- call SaveUserMaps("bi","","<left>","DrawIt")
- call SaveUserMaps("bi","","<right>","DrawIt")
- call SaveUserMaps("bi","","<up>","DrawIt")
- call SaveUserMaps("bi","","<down>","DrawIt")
- call SaveUserMaps("bi","","<left>","DrawIt")
- call SaveUserMaps("bi","","<s-right>","DrawIt")
- call SaveUserMaps("bi","","<s-up>","DrawIt")
- call SaveUserMaps("bi","","<s-down>","DrawIt")
- call SaveUserMaps("bi","","<home>","DrawIt")
- call SaveUserMaps("bi","","<end>","DrawIt")
- call SaveUserMaps("bi","","<pageup>","DrawIt")
- call SaveUserMaps("bi","","<pagedown>","DrawIt")
- call SaveUserMaps("bi","","<leftmouse>","DrawIt")
- endif
- call SaveUserMaps("bn","",":\<c-v>","DrawIt")
-
- " DrawItStart: DrawIt maps (Charles Campbell) {{{3
- nmap <silent> <buffer> <script> <left> :set lz<CR>:silent! call <SID>DrawLeft()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <right> :set lz<CR>:silent! call <SID>DrawRight()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <up> :set lz<CR>:silent! call <SID>DrawUp()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <down> :set lz<CR>:silent! call <SID>DrawDown()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <s-left> :set lz<CR>:silent! call <SID>MoveLeft()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <s-right> :set lz<CR>:silent! call <SID>MoveRight()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <s-up> :set lz<CR>:silent! call <SID>MoveUp()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <s-down> :set lz<CR>:silent! call <SID>MoveDown()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <space> :set lz<CR>:silent! call <SID>DrawErase()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> > :set lz<CR>:silent! call <SID>DrawSpace('>',1)<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> < :set lz<CR>:silent! call <SID>DrawSpace('<',2)<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> ^ :set lz<CR>:silent! call <SID>DrawSpace('^',3)<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> v :set lz<CR>:silent! call <SID>DrawSpace('v',4)<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <home> :set lz<CR>:silent! call <SID>DrawSlantUpLeft()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <end> :set lz<CR>:silent! call <SID>DrawSlantDownLeft()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <pageup> :set lz<CR>:silent! call <SID>DrawSlantUpRight()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <pagedown> :set lz<CR>:silent! call <SID>DrawSlantDownRight()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <Leader>> :set lz<CR>:silent! call <SID>DrawFatRArrow()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <Leader>< :set lz<CR>:silent! call <SID>DrawFatLArrow()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <Leader>^ :set lz<CR>:silent! call <SID>DrawFatUArrow()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <Leader>v :set lz<CR>:silent! call <SID>DrawFatDArrow()<CR>:set nolz<CR>
- nmap <silent> <buffer> <script> <Leader>f :call <SID>Flood()<cr>
-
- " DrawItStart: Set up insertmode maps {{{3
- if exists("g:drawit_insertmode") && g:drawit_insertmode
- imap <silent> <buffer> <script> <left> <Esc><left>a
- imap <silent> <buffer> <script> <right> <Esc><right>a
- imap <silent> <buffer> <script> <up> <Esc><up>a
- imap <silent> <buffer> <script> <down> <Esc><down>a
- imap <silent> <buffer> <script> <left> <Esc><left>a
- imap <silent> <buffer> <script> <s-right> <Esc><s-right>a
- imap <silent> <buffer> <script> <s-up> <Esc><s-up>a
- imap <silent> <buffer> <script> <s-down> <Esc><s-down>a
- imap <silent> <buffer> <script> <home> <Esc><home>a
- imap <silent> <buffer> <script> <end> <Esc><end>a
- imap <silent> <buffer> <script> <pageup> <Esc><pageup>a
- imap <silent> <buffer> <script> <pagedown> <Esc><pagedown>a
- endif
-
- " DrawItStart: set up drawing mode mappings (Sylvain Viart) {{{3
- nnoremap <silent> <buffer> <script> <c-v> :call <SID>LeftStart()<CR><c-v>
- vmap <silent> <buffer> <script> <Leader>a :<c-u>call <SID>CallBox('Arrow')<CR>
- vmap <silent> <buffer> <script> <Leader>b :<c-u>call <SID>CallBox('DrawBox')<cr>
- nmap <buffer> <script> <Leader>c :call <SID>Canvas()<cr>
- vmap <silent> <buffer> <script> <Leader>l :<c-u>call <SID>CallBox('DrawPlainLine')<CR>
- vmap <silent> <buffer> <script> <Leader>s :<c-u>call <SID>Spacer(line("'<"), line("'>"),0)<cr>
-
- " DrawItStart: set up drawing mode mappings (Charles Campbell) {{{3
- " \pa ... \pz : blanks are transparent
- " \ra ... \rz : blanks copy over
- vmap <buffer> <silent> <Leader>e :<c-u>call <SID>CallBox('DrawEllipse')<CR>
-
- let allreg= "abcdefghijklmnopqrstuvwxyz"
- while strlen(allreg) > 0
- let ireg= strpart(allreg,0,1)
- exe "nmap <silent> <buffer> <Leader>p".ireg.' :<c-u>set lz<cr>:silent! call <SID>PutBlock("'.ireg.'",0)<cr>:set nolz<cr>'
- exe "nmap <silent> <buffer> <Leader>r".ireg.' :<c-u>set lz<cr>:silent! call <SID>PutBlock("'.ireg.'",1)<cr>:set nolz<cr>'
- let allreg= strpart(allreg,1)
- endwhile
-
- " DrawItStart: mouse maps (Sylvain Viart) {{{3
- " start visual-block with leftmouse
- nnoremap <silent> <buffer> <script> <leftmouse> <leftmouse>:call <SID>LeftStart()<CR><c-v>
- vnoremap <silent> <buffer> <script> <rightmouse> <leftmouse>:<c-u>call <SID>RightStart(1)<cr>
- vnoremap <silent> <buffer> <script> <middlemouse> <leftmouse>:<c-u>call <SID>RightStart(0)<cr>
- vnoremap <silent> <buffer> <script> <c-leftmouse> <leftmouse>:<c-u>call <SID>CLeftStart()<cr>
-
- " DrawItStart: mouse maps (Charles Campbell) {{{3
- " Draw with current brush
- nnoremap <silent> <buffer> <script> <s-leftmouse> <leftmouse>:call <SID>SLeftStart()<CR><c-v>
- nnoremap <silent> <buffer> <script> <c-leftmouse> <leftmouse>:call <SID>CLeftStart()<CR><c-v>
-
- " DrawItStart: 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.Make\ Blank\ Zone<tab>\\c <Leader>c'
- 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.Append\ Blanks<tab>\\s <Leader>s'
- exe 'silent! unmenu '.g:DrChipTopLvlMenu.'DrawIt.Start\ DrawIt'
- endif
-" call Dret("DrawItStart")
-endfun
-
-" ---------------------------------------------------------------------
-" DrawIt#DrawItStop: this function unmaps the cursor keys and restores settings {{{2
-fun! DrawIt#DrawItStop()
-" call Dfunc("DrawItStop()")
-
- " DrawItStop: report on [DrawIt off] mode {{{3
- if !exists("b:dodrawit")
- echo "[DrawIt off]"
-" call Dret("DrawItStop")
- return
- endif
-
- " DrawItStop: 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_canvas_used")
- " DrawItStop: clean up trailing white space {{{3
- call s:SavePosn()
- silent! %s/\s\+$//e
- unlet b:drawit_canvas_used
- call s:RestorePosn()
- endif
-
- " DrawItStop: remove drawit commands {{{3
- delc SetBrush
-
- " DrawItStop: insure that erase mode is off {{{3
- " (thanks go to Gary Johnson for this)
- if b:di_erase == 1
- call s:DrawErase()
- endif
-
- " DrawItStop: restore user map(s), if any {{{3
- call RestoreUserMaps("DrawIt")
-
- call s:DrawItRestoreUserSettings()
-
- " DrawItStop: 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("DrawItStop")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawItSaveUserSettings: saves user settings, changes them to be safe for DrawIt {{{2
-" Use s:DrawItRestoreUserSettings() to restore.
-fun! s:DrawItSaveUserSettings()
-" call Dfunc("s:DrawItSaveUserSettings()")
- " save user settings
- let b:di_aikeep = &l:ai
- let b:di_cedit = &cedit
- let b:di_cinkeep = &l:cin
- let b:di_cpokeep = &l:cpo
- let b:di_etkeep = &l:et
- let b:di_fokeep = &l:fo
- let b:di_gdkeep = &l:gd
- let b:di_gokeep = &l:go
- let b:di_magickeep = &l:magic
- let b:di_remapkeep = &l:remap
- let b:di_repkeep = &l:report
- let b:di_sikeep = &l:si
- let b:di_stakeep = &l:sta
- let b:di_vekeep = &l:ve
-
- " change user settings to something safe for DrawIt
- setl cpo&vim
- setl nocin noai nosi nogd sta et ve=all report=10000
- setl go-=aA
- setl fo-=a
- setl remap magic
- set cedit&
-" call Dret("s:DrawItSaveUserSettings")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawItRestoreUserSettings: restore user settings {{{2
-fun! s:DrawItRestoreUserSettings()
-" call Dfunc("s:DrawItRestoreUserSettings()")
-
- " restore user's settings
- let &l:ai = b:di_aikeep
- let &l:cin = b:di_cinkeep
- let &l:cpo = b:di_cpokeep
- let &l:et = b:di_etkeep
- let &l:fo = b:di_fokeep
- let &l:gd = b:di_gdkeep
- let &l:go = b:di_gokeep
- let &l:magic = b:di_magickeep
- let &l:remap = b:di_remapkeep
- let &l:report = b:di_repkeep
- let &l:si = b:di_sikeep
- let &l:sta = b:di_stakeep
- let &l: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
-" call Dret("s:DrawItRestoreUserSettings")
-endfun
-
-" ---------------------------------------------------------------------
-" DrawIt#SetMode: sets normal, single, double drawing mode, and ensures that DrawIt mode is on {{{2
-fun! DrawIt#SetMode(mode)
-" call Dfunc("DrawIt#SetMode(mode=".a:mode.")")
- if &enc == 'utf-8' || &enc == 'cp437' || &enc == 'utf-16' || &enc == 'ucs-4'
- let b:di_gfxchr= 1
- else
- let b:di_gfxchr= 0
- endif
- if b:di_gfxchr == 0
- let g:drawit_mode= 'N'
- elseif &enc != 'utf-8' && &enc != 'cp437' && &enc != 'utf-16' && &enc != 'ucs-4'
- let g:drawit_mode = 'N'
- let b:di_gfxchr = 0
- elseif a:mode =~ '^[sS]$'
- let g:drawit_mode= 'S'
- elseif a:mode =~ '^[dD]$'
- let g:drawit_mode= 'D'
- else
- let g:drawit_mode = 'N'
- let b:di_gfxchr = 0
- endif
- if !exists("b:dodrawit") || b:dodrawit == 0
- call DrawIt#DrawItStart()
- endif
-" call Dret("DrawIt#SetMode")
-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,di_ellipse)
-" 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."> ellipse<".a:di_ellipse.">)")
- 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
- let b:di_ellipse = a:di_ellipse
-" call Dret("SetDrawIt")
-endfun
-
-" =====================================================================
-" s:DrawLeft: {{{2
-fun! s:DrawLeft()
-" call Dfunc("s:DrawLeft()")
- let curline = getline(".")
- let curcol = virtcol(".")
- let b:lastdir = 2
- let keepatat = @@
-" call Decho("curcol#".curcol." curline<".curline.">")
-
- if curcol > 0
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
-" let curchar = strpart(curline,curcol-1,1)
-
- " step1: Replace
- " step2: Move and Replace
- let step= 1
- while step <= 2
-" call Decho("step#".step)
-
- if step == 2
- if curcol < 2
- break
- endif
-" call Decho("move and replace: curchar<".curchar."> mode<".g:drawit_mode.">")
- call s:MoveLeft()
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
- else
-" call Decho("replace: curchar<".curchar."> mode<".g:drawit_mode.">")
- endif
-
- if s:IsDrawItH(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
-
- else
-
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Shoriz
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dhoriz
- else
- exe "norm! r".b:di_horiz
- endif
-
- endif
- let step= step + 1
- endwhile
-
- norm! l
- call s:DrawCorner()
- norm! h
- call s:DrawCorner()
- endif
- let @@= keepatat
-" call Dret("s:DrawLeft")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawRight: {{{2
-fun! s:DrawRight()
-" call Dfunc("s:DrawRight()")
- let curline = getline(".")
- let curcol = virtcol(".")
- let b:lastdir = 1
- let keepatat = @@
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
-
- " replace
- if curcol == virtcol("$")
- if g:drawit_mode == 'S'
- exe "norm! a".b:di_Shoriz."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! a".b:di_Dhoriz."\<Esc>"
- else
- exe "norm! a".b:di_horiz."\<Esc>"
- endif
- else
- if s:IsDrawItH(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Shoriz
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dhoriz
- else
- exe "norm! r".b:di_horiz
- endif
- endif
- endif
-
- " move and replace
- call s:MoveRight()
- if curcol == virtcol("$")
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Shoriz."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! i".b:di_Dhoriz."\<Esc>"
- else
- exe "norm! i".b:di_horiz."\<Esc>"
- endif
- else
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
- if s:IsDrawItH(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Shoriz
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dhoriz
- else
- exe "norm! r".b:di_horiz
- endif
- endif
- endif
-
- norm! h
- call s:DrawCorner()
- norm! l
- call s:DrawCorner()
-
- let @@= keepatat
-" call Dret("s:DrawRight")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawUp: {{{2
-fun! s:DrawUp()
-" call Dfunc("s:DrawUp()")
- let curline = getline(".")
- let curcol = virtcol(".")
- let b:lastdir = 3
- let keepatat = @@
- norm! vy
- let curchar = @@
-" call Decho("curchar<".curchar.">")
-
- " replace
- if curcol == 1 && virtcol("$") == 1
-" call Decho("case curcol#".curcol."==virtcol($): insert")
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Svert."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! i".b:di_Dvert."\<Esc>"
- else
- exe "norm! i".b:di_vert."\<Esc>"
- endif
- else
-" call Decho("case curcol#".curcol."!=virtcol($) curchar<".curchar.">: replace")
- if s:IsDrawItV(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Svert
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dvert
- else
- exe "norm! r".b:di_vert
- endif
- endif
- endif
-
- " move and replace/insert
- call s:MoveUp()
- let curline= getline(".")
-" let curchar= strpart(curline,curcol-1,1)
- norm! vy
- let curchar= @@
-
- if curcol == 1 && virtcol("$") == 1
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Svert."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! i".b:di_Dvert."\<Esc>"
- else
- exe "norm! i".b:di_vert."\<Esc>"
- endif
- elseif s:IsDrawItV(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Svert
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dvert
- else
- exe "norm! r".b:di_vert
- endif
-
- endif
-
- norm! j
- call s:DrawCorner()
- norm! k
- call s:DrawCorner()
-
- let @@= keepatat
-" call Dret("s:DrawUp")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawDown: {{{2
-fun! s:DrawDown()
-" call Dfunc("s:DrawDown()")
- let curline = getline(".")
- let curcol = virtcol(".")
- let keepatat = @@
- norm! vy
- let curchar = @@
-" call Decho("curchar<".curchar.">")
- let b:lastdir = 4
-
- " replace
- if curcol == 1 && virtcol("$") == 1
-" call Decho("curcol=".curcol." $=1"
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Svert."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! i".b:di_Dvert."\<Esc>"
- else
- exe "norm! i".b:di_vert."\<Esc>"
- endif
- else
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
- if s:IsDrawItV(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Svert
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dvert
- else
- exe "norm! r".b:di_vert
- endif
- endif
- endif
-
- " move and replace/insert
- call s:MoveDown()
- let curline= getline(".")
- norm! vy
- let curchar= @@
-" call Decho("curchar<".curchar.">")
- if curcol == 1 && virtcol("$") == 1
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Svert."\<Esc>"
- elseif g:drawit_mode == 'D'
- exe "norm! i".b:di_Dvert."\<Esc>"
- else
- exe "norm! i".b:di_vert."\<Esc>"
- endif
- elseif s:IsDrawItV(curchar)
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Splus
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dplus
- else
- exe "norm! r".b:di_plus
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Svert
- elseif g:drawit_mode == 'D'
- exe "norm! r".b:di_Dvert
- else
- exe "norm! r".b:di_vert
- endif
-
- endif
-
- norm! k
- call s:DrawCorner()
- norm! j
- call s:DrawCorner()
-
- let @@= keepatat
-" call Dret("s:DrawDown")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawCorner: change a ┼ or a ╬ into an appropriate corner {{{2
-fun! s:DrawCorner()
-" call Dfunc("s:DrawCorner()")
- let keepatat= @@
- norm! vy
- let ctr= @@
- if ctr != b:di_Splus && ctr != b:di_Dplus
- let @@= keepatat
-" call Dret("s:DrawCorner : ctr<".ctr."> (quick return)")
- return
- endif
-
- " cleft: Grab a copy of the character to the left of the cursor
- if virtcol(".") > 1
- norm! hvyl
- let cleft= @@
- else
- let cleft= " "
- endif
-
- " cright: Grab a copy of the character to the right of the cursor
- if virtcol(".") < virtcol("$")
- norm! lvyh
- let cright= @@
- else
- let cright= " "
- endif
-
- " cup: Grab a copy of the character above the cursor
- if line(".") > 1
- norm! kvyj
- let cup= @@
- else
- let cup= " "
- endif
-
- " cdown: Grab a copy of the character below the cursor
- if line(".") < line("$")
- norm! jvyk
- let cdown= @@
- else
- let cdown= " "
- endif
-" call Decho("ctr<".ctr."> cup<".cup."> cright<".cright."> cdown<".cdown."> cleft<".cleft.">")
- " - MIXED SINGLE-DOUBLE CORNERS ----------------------------------------
- " ┼╠╬╠╒â•
- " │ │ │
- if !s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_cSdDr
-
- " ┼─ ╬─ ╓─
- " â•‘ â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_cDdSr
-
- " â•â”¼ â•â•¬ â•â••
- " │ │ │
- elseif !s:IsDnS(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_cDlSd
-
- " ─┼ ─╬ ─╖
- " â•‘ â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && !s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_cSlDd
-
- " │ │ │
- " ┼╠╬╠╘â•
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && !s:IsUpS(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_cDrSu
-
- " â•‘ â•‘ â•‘
- " ┼─ ╬─ ╙─
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && !s:IsUpD(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_cSrDu
-
- " │ │ │
- " â•â”¼ â•â•¬ â•â•›
- elseif s:IsDnS(cup)
- \ && !s:IsLeftD(cright)
- \ && !s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_cDlSu
-
- " â•‘ â•‘ â•‘
- " ─┼ ─╬ ─╜
- elseif s:IsDnD(cup)
- \ && !s:IsLeftS(cright)
- \ && !s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_cSlDu
-
- " - SINGLE LINE --------------------------------------------------------
- elseif ctr == b:di_Splus
- " ─┼ ─â”
- " │ │
- if !s:IsDnS(cup)
- \ && !s:IsLeftS(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_Surcorn
-
- " ┼─ ┌─
- " │ │
- elseif !s:IsDnS(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpS(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_Sulcorn
-
- " │ │
- " ─┼ ─┘
- elseif s:IsDnS(cup)
- \ && !s:IsLeftS(cright)
- \ && !s:IsUpS(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_Slrcorn
-
- " │ │
- " ┼─ └─
- elseif s:IsDnS(cup)
- \ && s:IsLeftS(cright)
- \ && !s:IsUpS(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_Sllcorn
-
- " │ │
- " ┼─ ├─
- " │ │
- elseif s:IsDnS(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpS(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_Srplus
-
- " │ │
- " ─┼ ─┤
- " │ │
- elseif s:IsDnS(cup)
- \ && !s:IsLeftS(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_Slplus
-
- " ─┼─ ─┬─
- " │ │
- elseif !s:IsDnS(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_Sdnplus
-
- " ─┼─ ─╥─
- " â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_ShDd
-
- " â•‘ â•‘
- " ─┼─ ─╨─
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && !s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_ShDu
-
- " │ │
- " ─┼─ ─┴─
- elseif s:IsDnS(cup)
- \ && s:IsLeftS(cright)
- \ && !s:IsUpS(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_Supplus
-
- " â•‘ â•‘
- " ┼─ ╟─
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && !s:IsRightS(cleft)
- exe "norm! r".b:di_DuSr
-
- " â•‘ â•‘
- " ─┼ ─╢
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && !s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_DuSl
-
- " │ │
- " ┼╠╞â•
- " │ │
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_SuDr
-
- " │ │
- " â•â”¼ â•â•¡
- " │ │
- elseif s:IsDnS(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SuDl
-
- " â•â”¼â• â•â•¤â•
- " │ │
- elseif !s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_DhSd
-
- " │ │
- " â•â”¼â• â•â•§â•
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && !s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_DhSu
-
- " â•‘ â•‘
- " ─┼─ ─╫─
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_DuSlr
-
- " │ │
- " â•â”¼â• â•â•ªâ•
- " │ │
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SuDlr
- endif
-
- " - DOUBLE LINE --------------------------------------------------------
- elseif ctr == b:di_Dplus
- " â•â•¬ â•â•—
- " â•‘ â•‘
- if !s:IsDnD(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_Durcorn
-
- " ╬╠╔â•
- " â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_Dulcorn
-
- " â•‘ â•‘
- " â•â•¬ â•â•
- elseif s:IsDnD(cup)
- \ && !s:IsLeftD(cright)
- \ && !s:IsUpD(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_Dlrcorn
-
- " â•‘ â•‘
- " ╬╠╚â•
- elseif s:IsDnD(cup)
- \ && s:IsLeftD(cright)
- \ && !s:IsUpD(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_Dllcorn
-
- " â•‘ â•‘
- " ╬╠╠â•
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_Drplus
-
- " â•‘ â•‘
- " â•â•¬ â•â•£
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_Dlplus
-
- " â•‘ â•‘
- " ─╬ ─╢
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_DuSl
-
- " â•‘ â•‘
- " ╬─ ╟─
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_DuSr
-
- " â•â•¬â• â•â•¦â•
- " â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_Ddnplus
-
- " â•‘ â•‘
- " â•â•¬â• â•â•©â•
- elseif s:IsDnD(cup)
- \ && s:IsLeftD(cright)
- \ && !s:IsUpD(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_Dupplus
-
- " │ │
- " ╬╠╞â•
- " │ │
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && !s:IsRightD(cleft)
- exe "norm! r".b:di_SuDr
-
- " │ │
- " â•â•¬ â•â•¡
- " │ │
- elseif s:IsDnS(cup)
- \ && !s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SuDl
-
- " ─╬─ ─╥─
- " â•‘ â•‘
- elseif !s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_ShDd
-
- " â•‘ â•‘
- " ─╬─ ─╨─
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && !s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_ShDu
-
- " │ │
- " â•â•¬â• â•â•ªâ•
- " │ │
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SuDlr
-
- " │ │
- " â•â•¬â• â•â•¨â•
- elseif s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && !s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SuDh
-
- " â•â•¬â• â•â•¤â•
- " │ │
- elseif !s:IsDnS(cup)
- \ && s:IsLeftD(cright)
- \ && s:IsUpS(cdown)
- \ && s:IsRightD(cleft)
- exe "norm! r".b:di_SdDh
-
- " â•‘ â•‘
- " ─╬─ ─╫─
- " â•‘ â•‘
- elseif s:IsDnD(cup)
- \ && s:IsLeftS(cright)
- \ && s:IsUpD(cdown)
- \ && s:IsRightS(cleft)
- exe "norm! r".b:di_DuSlr
- endif
-
- endif
-
- norm! vy
- let newctr= @@
- let @@= keepatat
-" call Dret("s:DrawCorner : ".((newctr != ctr)? "newctr<".newctr.">" : "unchanged"))
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsDrawItH: moving horizontally {{{2
-fun! s:IsDrawItH(chr)
-" call Dfunc("s:IsDrawItH(chr<".a:chr.">)")
- if a:chr == b:di_vert || a:chr == b:di_plus
-" call Dret("s:IsDrawItH 1")
- return 1
- endif
- if b:di_gfxchr == 0
-" call Dret("s:IsDrawItH 0")
- return 0
- endif
- if a:chr == b:di_Svert || a:chr == b:di_Dvert
- \ || a:chr == b:di_Splus || a:chr == b:di_Dplus
- \ || a:chr == b:di_Surcorn || a:chr == b:di_Durcorn
- \ || a:chr == b:di_Slrcorn || a:chr == b:di_Dlrcorn
- \ || a:chr == b:di_Sllcorn || a:chr == b:di_Dllcorn
- \ || a:chr == b:di_Sulcorn || a:chr == b:di_Dulcorn
- \ || a:chr == b:di_Sdnplus || a:chr == b:di_Ddnplus
- \ || a:chr == b:di_Supplus || a:chr == b:di_Dupplus
- \ || a:chr == b:di_Srplus || a:chr == b:di_Drplus
- \ || a:chr == b:di_Slplus || a:chr == b:di_Dlplus
- \ || a:chr == b:di_DhSd || a:chr == b:di_DhSu
- \ || a:chr == b:di_DuSl || a:chr == b:di_DuSr
- \ || a:chr == b:di_ShDd || a:chr == b:di_ShDu
- \ || a:chr == b:di_SuDl || a:chr == b:di_SuDr
- \ || a:chr == b:di_DuSlr || a:chr == b:di_SuDlr
- \ || a:chr == b:di_cSdDr || a:chr == b:di_cSdDr
- \ || a:chr == b:di_cDdSr || a:chr == b:di_cDdSr
- \ || a:chr == b:di_cDlSd || a:chr == b:di_cDlSd
- \ || a:chr == b:di_cSlDd || a:chr == b:di_cSlDd
- \ || a:chr == b:di_cDrSu || a:chr == b:di_cDrSu
- \ || a:chr == b:di_cSrDu || a:chr == b:di_cSrDu
- \ || a:chr == b:di_cDlSu || a:chr == b:di_cDlSu
- \ || a:chr == b:di_cSlDu || a:chr == b:di_cSlDu
-" call Dret("s:IsDrawItH 1")
- return 1
- endif
-" call Dret("s:IsDrawItH 0")
- return 0
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsDrawItV: moving vertically {{{2
-fun! s:IsDrawItV(chr)
-" call Dfunc("s:IsDrawItV(chr<".a:chr.">)")
- if a:chr == b:di_horiz || a:chr == b:di_plus
-" call Dret("s:IsDrawItH 1")
- return 1
- endif
- if b:di_gfxchr == 0
-" call Dret("s:IsDrawItH 0")
- return 0
- endif
- if a:chr == b:di_Shoriz || a:chr == b:di_Dhoriz
- \ || a:chr == b:di_Splus || a:chr == b:di_Dplus
- \ || a:chr == b:di_Surcorn || a:chr == b:di_Durcorn
- \ || a:chr == b:di_Slrcorn || a:chr == b:di_Dlrcorn
- \ || a:chr == b:di_Sllcorn || a:chr == b:di_Dllcorn
- \ || a:chr == b:di_Sulcorn || a:chr == b:di_Dulcorn
- \ || a:chr == b:di_Sdnplus || a:chr == b:di_Ddnplus
- \ || a:chr == b:di_Supplus || a:chr == b:di_Dupplus
- \ || a:chr == b:di_Srplus || a:chr == b:di_Drplus
- \ || a:chr == b:di_Slplus || a:chr == b:di_Dlplus
- \ || a:chr == b:di_DhSd || a:chr == b:di_DhSu
- \ || a:chr == b:di_DuSl || a:chr == b:di_DuSr
- \ || a:chr == b:di_ShDd || a:chr == b:di_ShDu
- \ || a:chr == b:di_SuDl || a:chr == b:di_SuDr
- \ || a:chr == b:di_DuSlr || a:chr == b:di_SuDlr
- \ || a:chr == b:di_cSdDr || a:chr == b:di_cSdDr
- \ || a:chr == b:di_cDdSr || a:chr == b:di_cDdSr
- \ || a:chr == b:di_cDlSd || a:chr == b:di_cDlSd
- \ || a:chr == b:di_cSlDd || a:chr == b:di_cSlDd
- \ || a:chr == b:di_cDrSu || a:chr == b:di_cDrSu
- \ || a:chr == b:di_cSrDu || a:chr == b:di_cSrDu
- \ || a:chr == b:di_cDlSu || a:chr == b:di_cDlSu
- \ || a:chr == b:di_cSlDu || a:chr == b:di_cSlDu
-" call Dret("s:IsDrawItV 1")
- return 1
- endif
-" call Dret("s:IsDrawItV 0")
- return 0
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsDnS: does the character "chr" have a single-line vertical-down? {{{2
-fun! s:IsDnS(chr)
-" call Dfunc("s:IsDnS(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Svert |let ret= 1
- elseif a:chr == b:di_Sulcorn|let ret= 1
- elseif a:chr == b:di_Surcorn|let ret= 1
- elseif a:chr == b:di_Splus |let ret= 1
- elseif a:chr == b:di_Sdnplus|let ret= 1
- elseif a:chr == b:di_Slplus |let ret= 1
- elseif a:chr == b:di_Srplus |let ret= 1
- elseif a:chr == b:di_SdDh |let ret= 1
- elseif a:chr == b:di_cDlSd |let ret= 1
- elseif a:chr == b:di_cSdDr |let ret= 1
- endif
- endif
-" call Dret("s:IsDnS ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsDnD: does the character "chr" have a double-line vertical-down? {{{2
-fun! s:IsDnD(chr)
-" call Dfunc("s:IsDnD(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Dvert |let ret= 1
- elseif a:chr == b:di_Dulcorn|let ret= 1
- elseif a:chr == b:di_Durcorn|let ret= 1
- elseif a:chr == b:di_Dplus |let ret= 1
- elseif a:chr == b:di_Ddnplus|let ret= 1
- elseif a:chr == b:di_Dlplus |let ret= 1
- elseif a:chr == b:di_Drplus |let ret= 1
- elseif a:chr == b:di_cDdSr |let ret= 1
- elseif a:chr == b:di_cSlDd |let ret= 1
- endif
- endif
-" call Dret("s:IsDnD ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsUpS: does the character "chr" have a single-line vertical-up? {{{2
-fun! s:IsUpS(chr)
-" call Dfunc("s:IsUpS(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Svert |let ret= 1
- elseif a:chr == b:di_Sllcorn|let ret= 1
- elseif a:chr == b:di_Slrcorn|let ret= 1
- elseif a:chr == b:di_Splus |let ret= 1
- elseif a:chr == b:di_Supplus|let ret= 1
- elseif a:chr == b:di_Slplus |let ret= 1
- elseif a:chr == b:di_Srplus |let ret= 1
- elseif a:chr == b:di_SuDh |let ret= 1
- elseif a:chr == b:di_cDrSu |let ret= 1
- elseif a:chr == b:di_cDlSu |let ret= 1
- endif
- endif
-" call Dret("s:IsUpS ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsUpD: does the character "chr" have a double-line vertical-up? {{{2
-fun! s:IsUpD(chr)
-" call Dfunc("s:IsUpD(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Dvert |let ret= 1
- elseif a:chr == b:di_Dllcorn|let ret= 1
- elseif a:chr == b:di_Dlrcorn|let ret= 1
- elseif a:chr == b:di_Dplus |let ret= 1
- elseif a:chr == b:di_Dupplus|let ret= 1
- elseif a:chr == b:di_Dlplus |let ret= 1
- elseif a:chr == b:di_Drplus |let ret= 1
- elseif a:chr == b:di_cSrDu |let ret= 1
- elseif a:chr == b:di_cSlDu |let ret= 1
- endif
- endif
-" call Dret("s:IsUpD ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsLeftS: does the character "chr" have a single-line horizontal-left? {{{2
-fun! s:IsLeftS(chr)
-" call Dfunc("s:IsLeftS(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Shoriz |let ret= 1
- elseif a:chr == b:di_Surcorn |let ret= 1
- elseif a:chr == b:di_Slrcorn |let ret= 1
- elseif a:chr == b:di_Splus |let ret= 1
- elseif a:chr == b:di_Sdnplus |let ret= 1
- elseif a:chr == b:di_Supplus |let ret= 1
- elseif a:chr == b:di_Slplus |let ret= 1
- elseif a:chr == b:di_cSlDd |let ret= 1
- elseif a:chr == b:di_cSlDu |let ret= 1
- endif
- endif
-" call Dret("s:IsLeftS ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsLeftD: does the character "chr" have a double-line horizontal-left? {{{2
-fun! s:IsLeftD(chr)
-" call Dfunc("s:IsLeftD(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Dhoriz |let ret= 1
- elseif a:chr == b:di_Durcorn |let ret= 1
- elseif a:chr == b:di_Dlrcorn |let ret= 1
- elseif a:chr == b:di_Dplus |let ret= 1
- elseif a:chr == b:di_Ddnplus |let ret= 1
- elseif a:chr == b:di_Dupplus |let ret= 1
- elseif a:chr == b:di_Dlplus |let ret= 1
- elseif a:chr == b:di_cDlSd |let ret= 1
- elseif a:chr == b:di_cDlSu |let ret= 1
- endif
- endif
-" call Dret("s:IsLeftD ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsRightS: does the character "chr" have a single-line horizontal-right? {{{2
-fun! s:IsRightS(chr)
-" call Dfunc("s:IsRightS(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Shoriz |let ret= 1
- elseif a:chr == b:di_Sulcorn |let ret= 1
- elseif a:chr == b:di_Sllcorn |let ret= 1
- elseif a:chr == b:di_Splus |let ret= 1
- elseif a:chr == b:di_Sdnplus |let ret= 1
- elseif a:chr == b:di_Supplus |let ret= 1
- elseif a:chr == b:di_Srplus |let ret= 1
- elseif a:chr == b:di_cDdSr |let ret= 1
- elseif a:chr == b:di_cSrDu |let ret= 1
- endif
- endif
-" call Dret("s:IsRightS ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:IsRightD: does the character "chr" have a double-line horizontal-right? {{{2
-fun! s:IsRightD(chr)
-" call Dfunc("s:IsRightD(chr<".a:chr.">)")
- let ret= 0
- if b:di_gfxchr
- if a:chr == b:di_Dhoriz |let ret= 1
- elseif a:chr == b:di_Dulcorn |let ret= 1
- elseif a:chr == b:di_Dllcorn |let ret= 1
- elseif a:chr == b:di_Dplus |let ret= 1
- elseif a:chr == b:di_Ddnplus |let ret= 1
- elseif a:chr == b:di_Dupplus |let ret= 1
- elseif a:chr == b:di_Drplus |let ret= 1
- elseif a:chr == b:di_cSdDr |let ret= 1
- elseif a:chr == b:di_cDrSu |let ret= 1
- endif
- endif
-" call Dret("s:IsRightD ".ret)
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawErase: toggle [DrawIt on] and [DrawIt erase] modes {{{2
-fun! s:DrawErase()
-" call Dfunc("s: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
- let b:di_ellipse_save = b:di_ellipse
- 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,b:di_ellipse_save)
- endif
-" call Dret("s:DrawErase")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawSpace: clear character and move right {{{2
-fun! s:DrawSpace(chr,dir)
-" call Dfunc("s:DrawSpace(chr<".a:chr."> dir<".a:dir.">)")
- let curcol= virtcol(".")
-
- " replace current location with arrowhead/space
- if curcol == virtcol("$")-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("s:DrawSpace")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawSlantDownLeft: / {{{2
-fun! s:DrawSlantDownLeft()
-" call Dfunc("s:DrawSlantDownLeft()")
- call s:ReplaceDownLeft() " replace
- call s:MoveDown() " move
- call s:MoveLeft() " move
- call s:ReplaceDownLeft() " replace
-" call Dret("s:DrawSlantDownLeft")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawSlantDownRight: \ {{{2
-fun! s:DrawSlantDownRight()
-" call Dfunc("s:DrawSlantDownRight()")
- call s:ReplaceDownRight() " replace
- call s:MoveDown() " move
- call s:MoveRight() " move
- call s:ReplaceDownRight() " replace
-" call Dret("s:DrawSlantDownRight")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawSlantUpLeft: \ {{{2
-fun! s:DrawSlantUpLeft()
-" call Dfunc("s:DrawSlantUpLeft()")
- call s:ReplaceDownRight() " replace
- call s:MoveUp() " move
- call s:MoveLeft() " move
- call s:ReplaceDownRight() " replace
-" call Dret("s:DrawSlantUpLeft")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawSlantUpRight: / {{{2
-fun! s:DrawSlantUpRight()
-" call Dfunc("s:DrawSlantUpRight()")
- call s:ReplaceDownLeft() " replace
- call s:MoveUp() " move
- call s:MoveRight() " replace
- call s:ReplaceDownLeft() " replace
-" call Dret("s:DrawSlantUpRight")
-endfun
-
-" ---------------------------------------------------------------------
-" s:MoveLeft: {{{2
-fun! s:MoveLeft()
-" call Dfunc("s:MoveLeft()")
- norm! h
- let b:lastdir= 2
-" call Dret("s:MoveLeft : b:lastdir=".b:lastdir)
-endfun
-
-" ---------------------------------------------------------------------
-" s:MoveRight: {{{2
-fun! s:MoveRight()
-" call Dfunc("s:MoveRight()")
- if virtcol(".") >= virtcol("$") - 1
- exe "norm! A \<Esc>"
- else
- norm! l
- endif
- let b:lastdir= 1
-" call Dret("s:MoveRight : b:lastdir=".b:lastdir)
-endfun
-
-" ---------------------------------------------------------------------
-" s:MoveUp: {{{2
-fun! s:MoveUp()
-" call Dfunc("s:MoveUp()")
- if line(".") == 1
- let curcol= virtcol(".") - 1
- if curcol == 0 && virtcol("$") == 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= virtcol(".")
- norm! k
- while virtcol("$") <= curcol
- exe "norm! A \<Esc>"
- endwhile
- endif
- let b:lastdir= 3
-" call Dret("s:MoveUp : b:lastdir=".b:lastdir)
-endfun
-
-" ---------------------------------------------------------------------
-" s:MoveDown: {{{2
-fun! s:MoveDown()
-" call Dfunc("s:MoveDown()")
- if line(".") == line("$")
- let curcol= virtcol(".") - 1
- if curcol == 0 && virtcol("$") == 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= virtcol(".")
- norm! j
- while virtcol("$") <= curcol
- exe "norm! A \<Esc>"
- endwhile
- endif
- let b:lastdir= 4
-" call Dret("s:MoveDown : b:lastdir=".b:lastdir)
-endfun
-
-" ---------------------------------------------------------------------
-" s:ReplaceDownLeft: / X (upright) {{{2
-fun! s:ReplaceDownLeft()
-" call Dfunc("s:ReplaceDownLeft()")
- let curcol = virtcol(".")
- let keepatat = @@
- if curcol != virtcol("$")
- norm! vy
- let curchar= @@
-
- " determine if curchr needs to be changed to an "X"
- let chg2cross = 0
- if curchar == b:di_upleft || curchar == b:di_cross
- let chg2cross = 1
- elseif b:di_gfxchr
- " performing following test only if gfx drawing characters exist
- if curchar == b:di_Supleft || curchar == b:di_Scross
- let chg2cross = 1
- endif
- endif
-
- if chg2cross
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Scross
- else
- exe "norm! r".b:di_cross
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Supright
- else
- exe "norm! r".b:di_upright
- endif
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Supright."\<Esc>"
- else
- exe "norm! i".b:di_upright."\<Esc>"
- endif
- endif
- let @@= keepatat
-" call Dret("s:ReplaceDownLeft")
-endfun
-
-" ---------------------------------------------------------------------
-" s:ReplaceDownRight: \ X (upleft) {{{2
-fun! s:ReplaceDownRight()
-" call Dfunc("s:ReplaceDownRight()")
- let curcol = virtcol(".")
- let keepatat = @@
- if curcol != virtcol("$")
- norm! vy
- let curchar= @@
-" call Decho("case curcol#".curcol." == virtcol($) drawit_mode<".g:drawit_mode."> curchar<".curchar.">")
-
- " determine if curchr needs to be changed to an "X"
- let chg2cross = 0
- if curchar == b:di_upright || curchar == b:di_cross
- let chg2cross = 1
- elseif b:di_gfxchr
- " performing following test only if gfx drawing characters exist
- if curchar == b:di_Supright || curchar == b:di_Scross
- let chg2cross = 1
- endif
- endif
-
- if chg2cross
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Scross
- else
- exe "norm! r".b:di_cross
- endif
- else
- if g:drawit_mode == 'S'
- exe "norm! r".b:di_Supleft
- else
- exe "norm! r".b:di_upleft
- endif
- endif
- else
-" call Decho("case curcol#".curcol." != virtcol($) drawit_mode<".g:drawit_mode.">")
- if g:drawit_mode == 'S'
- exe "norm! i".b:di_Supleft."\<Esc>"
- else
- exe "norm! i".b:di_upleft."\<Esc>"
- endif
- endif
- let @@= keepatat
-" call Dret("s:ReplaceDownRight")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawFatRArrow: ----|> {{{2
-fun! s:DrawFatRArrow()
-" call Dfunc("s:DrawFatRArrow()")
- if g:drawit_mode == 'N' || !b:di_gfxchr
- call s:MoveRight()
- norm! r|
- call s:MoveRight()
- norm! r>
- else
- call s:MoveRight()
- norm! râ–¶
- endif
-" call Dret("s:DrawFatRArrow")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawFatLArrow: <|---- {{{2
-fun! s:DrawFatLArrow()
-" call Dfunc("s:DrawFatLArrow()")
- if g:drawit_mode == 'N' || !b:di_gfxchr
- call s:MoveLeft()
- norm! r|
- call s:MoveLeft()
- norm! r<
- else
- call s:MoveLeft()
- norm! râ—€
- endif
-" call Dret("s:DrawFatLArrow")
-endfun
-
-" ---------------------------------------------------------------------
-" .
-" s:DrawFatUArrow: /_\ {{{2
-" |
-fun! s:DrawFatUArrow()
-" call Dfunc("s:DrawFatUArrow()")
- if g:drawit_mode == 'N' || !b:di_bfxchr
- 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.
- else
- call s:MoveUp()
- norm! râ–²
- endif
-" call Dret("s:DrawFatUArrow")
-endfun
-
-" ---------------------------------------------------------------------
-" s:DrawFatDArrow: _|_ {{{2
-" \ /
-" '
-fun! s:DrawFatDArrow()
-" call Dfunc("s:DrawFatDArrow()")
- if g:drawit_mode == 'N' || !b:di_gfxchr
- 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'
- else
- call s:MoveDown()
- norm! râ–¼
- endif
-" call Dret("s:DrawFatDArrow")
-endfun
-
-" ---------------------------------------------------------------------
-" s: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:DrawEllipse(x0,y0,x1,y1)
-" call Dfunc("s:DrawEllipse(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("s:DrawEllipse")
-endf
-
-" ---------------------------------------------------------------------
-" s:DrawFour: reflect a point to four quadrants {{{2
-fun! s:DrawFour(x,y,xoff,yoff,a,b)
-" call Dfunc("s: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(b:di_ellipse, x, y)
- call s:SetCharAt(b:di_ellipse, lx, y)
- call s:SetCharAt(b:di_ellipse, lx,by)
- call s:SetCharAt(b:di_ellipse, x,by)
-" call Dret("s:DrawFour")
-endf
-
-" ---------------------------------------------------------------------
-" s:SavePosn: saves position of cursor on screen so NetWrite can restore it {{{2
-fun! s:SavePosn()
-" call Dfunc("s:SavePosn() saveposn_count=".s:saveposn_count.' ['.line('.').','.virtcol('.').']')
- 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} = virtcol(".") - 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("s:SavePosn : saveposn_count=".s:saveposn_count)
-endfun
-
-" ------------------------------------------------------------------------
-" s:RestorePosn: {{{2
-fun! s:RestorePosn()
-" call Dfunc("s:RestorePosn() saveposn_count=".s:saveposn_count)
- if s:saveposn_count <= 0
-" call Dret("s:RestorePosn : 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("s:RestorePosn : saveposn_count=".s:saveposn_count)
-endfun
-
-" ------------------------------------------------------------------------
-" s: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("s:Flood()")
-
- let s:bndry = b:di_vert.b:di_horiz.b:di_plus.b:di_upright.b:di_upleft.b:di_cross.b:di_ellipse
- if b:di_gfxchr
- let s:bndry= s:bndry.b:di_Svert.b:di_Dvert.b:di_Shoriz.b:di_Dhoriz.b:di_Sulcorn.b:di_Dulcorn.b:di_Surcorn.b:di_Durcorn.b:di_Sllcorn.b:di_Dllcorn.b:di_Slrcorn.b:di_Dlrcorn.b:di_Splus.b:di_Dplus.b:di_Sdnplus.b:di_Ddnplus.b:di_Supplus.b:di_Dupplus.b:di_Slplus.b:di_Dlplus.b:di_Srplus.b:di_Drplus.b:di_Supright.b:di_Supleft.b:di_Scross
- let s:bndry= s:bndry.b:di_DhSd.b:di_DhSu.b:di_DuSl.b:di_DuSlr.b:di_DuSr.b:di_ShDd.b:di_ShDu.b:di_SuDl.b:di_SuDlr.b:di_SdDh.b:di_SuDh.b:di_SuDr.b:di_cSdDr.b:di_cDdSr.b:di_cDlSd.b:di_cSlDd.b:di_cDrSu.b:di_cSrDu.b:di_cDlSu.b:di_cSlDu
- endif
- 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,'\-]^')."]"
-" call Decho("s:bndry<".s:bndry.">")
- if s: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("s:Flood")
-endfun
-
-" ------------------------------------------------------------------------
-" s: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("s: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("s: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("s:DI_Flood")
-endfun
-
-" ------------------------------------------------------------------------
-" s: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("s:DI_FillLeft(frow=".a:frow." fcol=".a:fcol.")")
- if s:SetPosn(a:frow,a:fcol)
-" call Dret("s: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("s:DI_FillLeft ".Lcol)
- return Lcol
-endfun
-
-" ---------------------------------------------------------------------
-" s: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("s:DI_FillRight(frow=".a:frow." fcol=".a:fcol.")")
- if s:SetPosn(a:frow,a:fcol)
-" call Dret("s: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("s:DI_FillRight ".Rcol)
- return Rcol
-endfun
-
-" ---------------------------------------------------------------------
-" s: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("s: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("s:DI_FillAdjacent")
-endfun
-
-" ---------------------------------------------------------------------
-" s: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("s:SetPosn(row=".a:row." col=".a:col.")")
- " sanity checks
- if a:row < 1
-" call Dret("s:SetPosn 1")
- return 1
- endif
- if a:col < 1
-" call Dret("s:SetPosn 1")
- return 1
- endif
-
- exe "norm! ".a:row."G".a:col."\<Bar>"
-
-" call Dret("s:SetPosn 0")
- return 0
-endfun
-
-" ---------------------------------------------------------------------
-" s: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("s: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("s:IsBoundary ".ret." : @0<".@0.">")
- return ret
-endfun
-
-" ---------------------------------------------------------------------
-" s: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("s:PutBlock(block<".a:block."> replace=".a:replace.") g:drawit_xstrlen=".g:drawit_xstrlen)
- 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,'\-').']'
-" call Decho("blocklen=".blocklen." block<".string(block).">")
-
- " insure that putting a block will do so in a region containing spaces out to textwidth
- exe "let blockrows= s:Strlen(substitute(@".a:block.",'[^[:cntrl:]]','','g'))"
- exe 'let blockcols= s:Strlen(substitute(@'.a:block.",'^\\(.\\{-}\\)\\n\\_.*$','\\1',''))"
- let curline= line('.')
- let curcol = virtcol('.')
-" call Decho("blockrows=".blockrows." blockcols=".blockcols." curline=".curline." curcol=".curcol)
- call s:AutoCanvas(curline-1,curline + blockrows+1,curcol + blockcols)
-
- let iblock= 0
- while iblock < blocklen
- " the following logic should permit 1, 2, or 4 byte glyphs (I've only tested it with 1 and 2)
- let chr= strpart(block,iblock,4)
- if char2nr(chr) <= 255
- let chr= strpart(block,iblock,1)
- elseif char2nr(chr) <= 65536
- let chr= strpart(block,iblock,2)
- let iblock= iblock + 1
- else
- let iblock= iblock + 3
- endif
-" call Decho("iblock=".iblock." chr#".char2nr(chr)."<".string(chr).">")
-
- 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()
-
-" call Dret("s:PutBlock")
-endfun
-
-" ---------------------------------------------------------------------
-" s:AutoCanvas: automatic "Canvas" routine {{{2
-fun! s:AutoCanvas(linestart,linestop,cols)
-" call Dfunc("s:AutoCanvas(linestart=".a:linestart." linestop=".a:linestop." cols=".a:cols.") line($)=".line("$"))
-
- " insure there's enough blank lines at end-of-file
- if line("$") < a:linestop
-" call Decho("append ".(a:linestop - line("$"))." empty lines")
- call s:SavePosn()
- exe "norm! G".(a:linestop - line("$"))."o\<esc>"
- call s:RestorePosn()
- endif
-
- " insure that any tabs contained within the selected region are converted to blanks
- let etkeep= &l:et
- set et
-" call Decho("exe ".a:linestart.",".a:linestop."retab")
- exe a:linestart.",".a:linestop."retab"
- let &l:et= etkeep
-
- " insure that there's whitespace to textwidth/screenwidth/a:cols
- if a:cols <= 0
- let tw= &tw
- if tw <= 0
- let tw= &columns
- endif
- else
- let tw= a:cols
- endif
-" Decho("tw=".tw)
- if search('^$\|.\%<'.(tw+1).'v$',"cn",(a:linestop+1)) > 0
-" call Decho("append trailing whitespace")
- call s:Spacer(a:linestart,a:linestop,tw)
- endif
-
-" call Dret("s:AutoCanvas : tw=".tw)
-endfun
-
-" ---------------------------------------------------------------------
-" s:Strlen: this function returns the length of a string, even if its {{{2
-" using two-byte etc characters.
-" Currently, its only used if g:Align_xstrlen is set to a
-" nonzero value. Solution from Nicolai Weibull, vim docs
-" (:help strlen()), Tony Mechelynck, and my own invention.
-fun! s:Strlen(x)
-" call Dfunc("s:Strlen(x<".a:x.">")
-
- if v:version >= 703 && exists("*strdisplaywidth")
- let ret= strdisplaywidth(a:x)
-
- elseif g:drawit_xstrlen == 1
- " number of codepoints (Latin a + combining circumflex is two codepoints)
- " (comment from TM, solution from NW)
- let ret= strlen(substitute(a:x,'.','c','g'))
-
- elseif g:drawit_xstrlen == 2
- " number of spacing codepoints (Latin a + combining circumflex is one spacing
- " codepoint; a hard tab is one; wide and narrow CJK are one each; etc.)
- " (comment from TM, solution from TM)
- let ret= strlen(substitute(a:x, '.\Z', 'x', 'g'))
-
- elseif g:drawit_xstrlen == 3
- " virtual length (counting, for instance, tabs as anything between 1 and
- " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately
- " preceded by lam, one otherwise, etc.)
- " (comment from TM, solution from me)
- let modkeep= &l:mod
- exe "norm! o\<esc>"
- call setline(line("."),a:x)
- let ret= virtcol("$") - 1
- d
- keepj norm! k
- let &l:mod= modkeep
-
- else
- " at least give a decent default
- let ret= strlen(a:x)
- endif
-
-" call Dret("s:Strlen ".ret)
- return ret
-endfun
-
-" =====================================================================
-" DrawIt Functions: (by Sylvain Viart) {{{1
-" =====================================================================
-
-" ---------------------------------------------------------------------
-" s:Canvas: {{{2
-fun! s:Canvas()
-" call Dfunc("s:Canvas()")
-
- let lines = input("how many lines under the cursor? ")
- let curline= line('.')
- if curline < line('$')
- exe "norm! ".lines."o\<esc>"
- endif
- call s:Spacer(curline+1,curline+lines,0)
- let b:drawit_canvas_used= 1
-
-" call Dret("s:Canvas")
-endf
-
-" ---------------------------------------------------------------------
-" s:Spacer: fill end of line with space {{{2
-" if a:cols >0: to the virtual column specified by a:cols
-" <=0: to textwidth (if nonzero), otherwise
-" to display width (&columns)
-fun! s:Spacer(debut, fin, cols) range
-" call Dfunc("s:Spacer(debut=".a:debut." fin=".a:fin." cols=".a:cols.") textwidth=".&textwidth)
- call s:SavePosn()
-
- if a:cols <= 0
- let width = &textwidth
- if width <= 0
- let width= &columns
- endif
- else
- let width= a:cols
- endif
-
- let l= a:debut
- while l <= a:fin
- call setline(l,printf('%-'.width.'s',getline(l)))
- let l = l + 1
- endwhile
-
- call s:RestorePosn()
-
-" call Dret("s:Spacer")
-endf
-
-" ---------------------------------------------------------------------
-" s:CallBox: call the specified function using the current visual selection box {{{2
-fun! s:CallBox(func_name)
-" call Dfunc("s:CallBox(func_name<".a:func_name.">)")
-
- if exists("b:xmouse_start")
- let xdep = b:xmouse_start
- else
- let xdep= 0
- endif
- if exists("b:ymouse_start")
- let ydep = b:ymouse_start
- else
- let ydep= 0
- endif
- let col0 = virtcol("'<")
- let row0 = line("'<")
- let col1 = virtcol("'>")
- let row1 = line("'>")
-" call Decho("TL corner[".row0.",".col0."] original")
-" call Decho("BR corner[".row1.",".col1."] original")
-" call Decho("xydep [".ydep.",".xdep."]")
-
- if col1 == xdep && row1 == ydep
- let col1 = col0
- let row1 = row0
- let col0 = xdep
- let row0 = ydep
- endif
-" call Decho("TL corner[".row0.",".col0."]")
-" call Decho("BR corner[".row1.",".col1."]")
-
- " insure that the selected region has blanks to that specified by col1
- call s:AutoCanvas((row0 < row1)? row0 : row1,(row1 > row0)? row1 : row0,(col1 > col0)? col1 : col0)
-
-" call Decho("exe call s:".a:func_name."(".col0.','.row0.','.col1.','.row1.")")
- exe "call s:".a:func_name."(".col0.','.row0.','.col1.','.row1.")"
- let b:xmouse_start= 0
- let b:ymouse_start= 0
-
-" call Dret("s:CallBox")
-endf
-
-" ---------------------------------------------------------------------
-" s:DrawBox: {{{2
-fun! s:DrawBox(x0, y0, x1, y1)
-" call Dfunc("s:DrawBox(xy0[".a:x0.",".a:y0." xy1[".a:x1.",".a:y1."]) g:drawit_mode=".g:drawit_mode)
- " loop each line
- let x0= (a:x1 > a:x0)? a:x0 : a:x1
- let x1= (a:x1 > a:x0)? a:x1 : a:x0
- let y0= (a:y1 > a:y0)? a:y0 : a:y1
- let y1= (a:y1 > a:y0)? a:y1 : a:y0
-" call Decho('x0='.x0.' y0='.y0)
-" call Decho('x1='.x1.' y1='.y1)
- let l = y0
- while l <= y1
- let c = x0
- while c <= x1
- let remp= '.'
- if l == y0 || l == y1
- if g:drawit_mode == 's' || g:drawit_mode == 'S'
- let remp = b:di_Shoriz
- elseif g:drawit_mode == 'd' || g:drawit_mode == 'D'
- let remp = b:di_Dhoriz
- else
- let remp = b:di_horiz
- endif
- if g:drawit_mode =~ '[sSdD]'
- if c == x0 && l == y0
- let remp= (g:drawit_mode == 's' || g:drawit_mode == 'S')? b:di_Sulcorn : b:di_Dulcorn
-" call Decho('x0,y0: ulcorn<'.remp.'>')
- elseif c == x1 && l == y0
- let remp= (g:drawit_mode == 's' || g:drawit_mode == 'S')? b:di_Surcorn : b:di_Durcorn
-" call Decho('x0,y1: ulcorn<'.remp.'>')
- elseif c == x0 && l == y1
- let remp= (g:drawit_mode == 's' || g:drawit_mode == 'S')? b:di_Sllcorn : b:di_Dllcorn
-" call Decho('x1,y0: ulcorn<'.remp.'>')
- elseif c == x1 && l == y1
- let remp= (g:drawit_mode == 's' || g:drawit_mode == 'S')? b:di_Slrcorn : b:di_Dlrcorn
-" call Decho('x1,y1: ulcorn<'.remp.'>')
- endif
- else
- if c == x0 || c == x1
- let remp = b:di_plus
- endif
- endif
- else
- if g:drawit_mode == 's' || g:drawit_mode == 'S'
- let remp = b:di_Svert
- elseif g:drawit_mode == 'd' || g:drawit_mode == 'D'
- let remp = b:di_Dvert
- else
- let remp = b:di_vert
- endif
- if c != x0 && c != 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("s:DrawBox")
-endf
-
-" ---------------------------------------------------------------------
-" s:SetCharAt: set the character at the specified position (something must pre-exist at the pos'n) {{{2
-fun! s:SetCharAt(chr, x, y)
-" call Dfunc("s:SetCharAt(chr<".a:chr."> xy[".a:x.",".a:y."])")
-
- exe a:y
- if a:x <= 1
- exe "norm! 0r".a:chr
- else
- exe "norm! 0".(a:x-1)."lr".a:chr
- endif
-
-" call Dret("s:SetCharAt")
-endf
-
-" ---------------------------------------------------------------------
-" s:DrawLine: 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("s: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
-" call Decho("swap points: p0(".x0.",".y0.") p1(".x1.",".y1.")")
- else
- let x0 = a:x0
- let y0 = a:y0
- let x1 = a:x1
- let y1 = a:y1
-" call Decho("points: p0(".x0.",".y0.") p1(".x1.",".y1.")")
- endif
- let dy = y1 - y0
- let dx = x1 - x0
-" call Decho("[dx=x1-x0]=".dx." [dy=y1-y0]=".dy)
-
- 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 a:horiz == '_'
- let horiz= a:horiz
- else
- let horiz = (g:drawit_mode == 'N')? b:di_horiz : ((g:drawit_mode == 'S')? b:di_Shoriz : b:di_Dhoriz)
- endif
- if a:horiz == '|'
- let vertline= a:vert
- else
- let vertline = (g:drawit_mode == 'N')? b:di_vert : ((g:drawit_mode == 'S')? b:di_Svert : b:di_Dvert)
- endif
-
- if dx > dy
-" call Decho("case dx>dy : Δ=".dx.",".dy." step=".stepx.",".stepy)
- let char = horiz
- call s:SetCharAt(char, x0, y0)
- let fraction = dy - (dx / 2) " same as 2*Δy - Δx
- while x0 != x1
- let char = horiz
- if fraction >= 0
- if stepx > 0
-" call Decho("..case [fraction=".fraction."]≥0 and [stepx=".stepx."]>0: go upleft")
- let char = (g:drawit_mode == 'N')? b:di_upleft : b:di_Supleft
- else
-" call Decho("..case [fraction=".fraction."]≥0 and [stepx=".stepx."]≤0: go upright")
- let char = (g:drawit_mode == 'N')? b:di_upright : b:di_Supright
- endif
- let y0 = y0 + stepy
- let fraction = fraction - dx " same as fraction -= 2*Δx
-" call Decho("....[y0+=stepy]=".y0." [fraction-=dx]=".fraction)
- endif
- let x0 = x0 + stepx
- let fraction = fraction + dy " same as fraction = fraction - 2*Δy
-" call Decho("..[x0+=stepx]=".x0." [fraction-=dy]=".fraction)
- call s:SetCharAt(char, x0, y0)
- endw
- else
-" call Decho("case dx≤dy : Δ=".dx.",".dy." step=".stepx.",".stepy)
- let char = vertline
- call s:SetCharAt(char, x0, y0)
- let fraction = dx - (dy / 2)
- while y0 != y1
- let char = (g:drawit_mode == 'N')? b:di_vert : ((g:drawit_mode == 'S')? b:di_Svert : b:di_Dvert)
- if fraction >= 0
- if stepx > 0
-" call Decho("..case [fraction=".fraction."]≥0 and [stepx=".stepx."]>0: go upleft")
- let char = (g:drawit_mode == 'N')? b:di_upleft : b:di_Supleft
- else
-" call Decho("..case [fraction=".fraction."]≥0 and [stepx=".stepy."]≤0: go upright")
- let char = (g:drawit_mode == 'N')? b:di_upright : b:di_Supright
- endif
- let x0 = x0 + stepx
- let fraction = fraction - dy
-" call Decho("....[x0+=stepx]=".x0." [fraction-=dy]=".fraction)
- endif
- let y0 = y0 + stepy
- let fraction = fraction + dx
-" call Decho("..[y0+=stepy]=".y0." [fraction-=dy]=".fraction)
- call s:SetCharAt(char, x0, y0)
- endw
- endif
-
-" call Dret("s:DrawLine")
-endf
-
-" ---------------------------------------------------------------------
-" s:Arrow: {{{2
-fun! s:Arrow(x0, y0, x1, y1)
-" call Dfunc("s:Arrow(xy0[".a:x0.",".a:y0."] xy1[".a:x1.",".a:y1."])")
-
- let horiz = (g:drawit_mode == 'N')? b:di_horiz : ((g:drawit_mode == 'S')? b:di_Shoriz : b:di_Dhoriz)
- call s:DrawLine(a:x0, a:y0, a:x1, a:y1,horiz)
- 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("s:Arrow")
-endf
-
-" ---------------------------------------------------------------------
-" s:Abs: return absolute value {{{2
-fun! s:Abs(val)
- if a:val < 0
- return - a:val
- else
- return a:val
- endif
-endf
-
-" ---------------------------------------------------------------------
-" s:DrawPlainLine: {{{2
-fun! s:DrawPlainLine(x0,y0,x1,y1)
-" call Dfunc("s: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("s:DrawPlainLine")
-endf
-
-" =====================================================================
-" Mouse Functions: {{{1
-" =====================================================================
-
-" ---------------------------------------------------------------------
-" s:LeftStart: Read visual drag mapping {{{2
-" The visual start point is saved in b:xmouse_start and b:ymouse_start
-fun! s:LeftStart()
-" call Dfunc("s:LeftStart()")
- let b:xmouse_start = virtcol('.')
- let b:ymouse_start = line('.')
- vnoremap <silent> <buffer> <script> <leftrelease> <leftrelease>:<c-u>call <SID>LeftRelease()<cr>gv
-" call Dret("s:LeftStart : [".b:ymouse_start.",".b:xmouse_start."]")
-endf!
-
-" ---------------------------------------------------------------------
-" s:LeftRelease: {{{2
-fun! s:LeftRelease()
-" call Dfunc("s:LeftRelease()")
- vunmap <buffer> <leftrelease>
-" call Dret("s:LeftRelease : [".line('.').','.virtcol('.').']')
-endf
-
-" ---------------------------------------------------------------------
-" s:SLeftStart: begin drawing with a brush {{{2
-fun! s:SLeftStart()
- if !exists("b:drawit_brush")
- let b:drawit_brush= "a"
- endif
-" call Dfunc("s:SLeftStart() brush=".b:drawit_brush.' ['.line('.').','.virtcol('.').']')
- noremap <silent> <buffer> <script> <s-leftdrag> <leftmouse>:<c-u>call <SID>SLeftDrag()<cr>
- noremap <silent> <buffer> <script> <s-leftrelease> <leftmouse>:<c-u>call <SID>SLeftRelease()<cr>
-" call Dret("s:SLeftStart")
-endfun
-
-" ---------------------------------------------------------------------
-" s:SLeftDrag: {{{2
-fun! s:SLeftDrag()
-" call Dfunc("s:SLeftDrag() brush=".b:drawit_brush.' ['.line('.').','.virtcol('.').']')
- call s:SavePosn()
- call s:PutBlock(b:drawit_brush,0)
- call s:RestorePosn()
-" call Dret("s:SLeftDrag")
-endfun
-
-" ---------------------------------------------------------------------
-" s:SLeftRelease: {{{2
-fun! s:SLeftRelease()
-" call Dfunc("s:SLeftRelease() brush=".b:drawit_brush.' ['.line('.').','.virtcol('.').']')
- call s:SLeftDrag()
- nunmap <buffer> <s-leftdrag>
- nunmap <buffer> <s-leftrelease>
-" call Dret("s:SLeftRelease")
-endfun
-
-" ---------------------------------------------------------------------
-" s:CLeftStart: begin moving a block of text {{{2
-fun! s:CLeftStart()
- if !exists("b:drawit_brush")
- let b:drawit_brush= "a"
- endif
-" call Dfunc("s:CLeftStart() brush=".b:drawit_brush)
- if !line("'<") || !line("'>")
- redraw!
- echohl Error
- echo "must visual-block select a region first"
-" call Dret("s:CLeftStart : must visual-block select a region first")
- return
- endif
- '<,'>call DrawIt#SetBrush(b:drawit_brush)
- norm! gvr
- let s:cleft_width= virtcol("'>") - virtcol("'<")
- if s:cleft_width < 0
- let s:cleft_width= -s:cleft_width
- endif
- let s:cleft_height= line("'>") - line("'<")
- if s:cleft_height < 0
- let s:cleft_height= -s:cleft_height
- endif
- if exists("s:cleft_oldblock")
- unlet s:cleft_oldblock
- endif
-" call Decho("blocksize: ".s:cleft_height."x".s:cleft_width)
- noremap <silent> <buffer> <script> <c-leftdrag> :<c-u>call <SID>CLeftDrag()<cr>
- noremap <silent> <buffer> <script> <c-leftrelease> <leftmouse>:<c-u>call <SID>CLeftRelease()<cr>
-" call Dret("s:CLeftStart")
-endfun
-
-" ---------------------------------------------------------------------
-" s:CLeftDrag: {{{2
-fun! s:CLeftDrag()
-" call Dfunc("s:CLeftDrag() cleft_width=".s:cleft_width." cleft_height=".s:cleft_height)
- exe 'let keepbrush= @'.b:drawit_brush
-" call Decho("keepbrush<".keepbrush.">")
-
- " restore prior contents of block zone
- if exists("s:cleft_oldblock")
-" call Decho("draw prior contents: [".line(".").",".virtcol(".")."] line($)=".line("$"))
-" call Decho("draw prior contents<".s:cleft_oldblock.">")
- exe 'let @'.b:drawit_brush.'=s:cleft_oldblock'
- call s:PutBlock(b:drawit_brush,1)
- endif
-
- " move cursor to <leftmouse> position
- exe "norm! \<leftmouse>"
-
- " save new block zone contents
-" call Decho("save contents: [".line(".").",".virtcol(".")."] - [".(line(".")+s:cleft_height).",".(virtcol(".")+s:cleft_width)."]")
- let curline= line(".")
- call s:AutoCanvas(curline,curline + s:cleft_height,virtcol(".")+s:cleft_width)
- if s:cleft_width > 0 && s:cleft_height > 0
- exe "silent! norm! \<c-v>".s:cleft_width."l".s:cleft_height.'j"'.b:drawit_brush.'y'
- elseif s:cleft_width > 0
- exe "silent! norm! \<c-v>".s:cleft_width.'l"'.b:drawit_brush.'y'
- else
- exe "silent! norm! \<c-v>".s:cleft_height.'j"'.b:drawit_brush.'y'
- endif
- exe "let s:cleft_oldblock= @".b:drawit_brush
-" call Decho("s:cleft_oldblock=@".b:drawit_brush)
-" call Decho("cleft_height=".s:cleft_height." cleft_width=".s:cleft_width)
-" call Decho("save contents<".s:cleft_oldblock.">")
-
- " draw the brush
-" call Decho("draw brush")
-" call Decho("draw brush ".b:drawit_brush.": [".line(".").",".virtcol(".")."] line($)=".line("$"))
- exe 'let @'.b:drawit_brush.'=keepbrush'
- call s:PutBlock(b:drawit_brush,1)
-
-" call Dret("s:CLeftDrag")
-endfun
-
-" ---------------------------------------------------------------------
-" s:CLeftRelease: {{{2
-fun! s:CLeftRelease()
-" call Dfunc("s:CLeftRelease()")
- call s:CLeftDrag()
- nunmap <buffer> <c-leftdrag>
- nunmap <buffer> <c-leftrelease>
- unlet s:cleft_oldblock s:cleft_height s:cleft_width
-" call Dret("s:CLeftRelease")
-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
diff --git a/vim/autoload/pathogen.vim b/vim/autoload/pathogen.vim
deleted file mode 100644
index c6d54a1..0000000
--- a/vim/autoload/pathogen.vim
+++ /dev/null
@@ -1,344 +0,0 @@
-" pathogen.vim - path option manipulation
-" Maintainer: Tim Pope <http://tpo.pe/>
-" Version: 2.3
-
-" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
-"
-" For management of individually installed plugins in ~/.vim/bundle (or
-" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
-" .vimrc is the only other setup necessary.
-"
-" The API is documented inline below.
-
-if exists("g:loaded_pathogen") || &cp
- finish
-endif
-let g:loaded_pathogen = 1
-
-" Point of entry for basic default usage. Give a relative path to invoke
-" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
-" pathogen#surround(). Curly braces are expanded with pathogen#expand():
-" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
-" in the runtime path.
-function! pathogen#infect(...) abort
- for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
- if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
- call pathogen#surround(path)
- elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
- call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
- call pathogen#surround(path . '/{}')
- elseif path =~# '[{}*]'
- call pathogen#interpose(path)
- else
- call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
- call pathogen#interpose(path . '/{}')
- endif
- endfor
- call pathogen#cycle_filetype()
- if pathogen#is_disabled($MYVIMRC)
- return 'finish'
- endif
- return ''
-endfunction
-
-" Split a path into a list.
-function! pathogen#split(path) abort
- if type(a:path) == type([]) | return a:path | endif
- if empty(a:path) | return [] | endif
- let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
- return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
-endfunction
-
-" Convert a list to a path.
-function! pathogen#join(...) abort
- if type(a:1) == type(1) && a:1
- let i = 1
- let space = ' '
- else
- let i = 0
- let space = ''
- endif
- let path = ""
- while i < a:0
- if type(a:000[i]) == type([])
- let list = a:000[i]
- let j = 0
- while j < len(list)
- let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
- let path .= ',' . escaped
- let j += 1
- endwhile
- else
- let path .= "," . a:000[i]
- endif
- let i += 1
- endwhile
- return substitute(path,'^,','','')
-endfunction
-
-" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
-function! pathogen#legacyjoin(...) abort
- return call('pathogen#join',[1] + a:000)
-endfunction
-
-" Turn filetype detection off and back on again if it was already enabled.
-function! pathogen#cycle_filetype() abort
- if exists('g:did_load_filetypes')
- filetype off
- filetype on
- endif
-endfunction
-
-" Check if a bundle is disabled. A bundle is considered disabled if its
-" basename or full name is included in the list g:pathogen_disabled.
-function! pathogen#is_disabled(path) abort
- if a:path =~# '\~$'
- return 1
- endif
- let sep = pathogen#slash()
- let blacklist = get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) + pathogen#split($VIMBLACKLIST)
- return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
-endfunction "}}}1
-
-" Prepend the given directory to the runtime path and append its corresponding
-" after directory. Curly braces are expanded with pathogen#expand().
-function! pathogen#surround(path) abort
- let sep = pathogen#slash()
- let rtp = pathogen#split(&rtp)
- let path = fnamemodify(a:path, ':p:?[\\/]\=$??')
- let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
- let after = filter(reverse(pathogen#expand(path.sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
- call filter(rtp, 'index(before + after, v:val) == -1')
- let &rtp = pathogen#join(before, rtp, after)
- return &rtp
-endfunction
-
-" For each directory in the runtime path, add a second entry with the given
-" argument appended. Curly braces are expanded with pathogen#expand().
-function! pathogen#interpose(name) abort
- let sep = pathogen#slash()
- let name = a:name
- if has_key(s:done_bundles, name)
- return ""
- endif
- let s:done_bundles[name] = 1
- let list = []
- for dir in pathogen#split(&rtp)
- if dir =~# '\<after$'
- let list += reverse(filter(pathogen#expand(dir[0:-6].name.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
- else
- let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
- endif
- endfor
- let &rtp = pathogen#join(pathogen#uniq(list))
- return 1
-endfunction
-
-let s:done_bundles = {}
-
-" Invoke :helptags on all non-$VIM doc directories in runtimepath.
-function! pathogen#helptags() abort
- let sep = pathogen#slash()
- for glob in pathogen#split(&rtp)
- for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
- if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
- silent! execute 'helptags' pathogen#fnameescape(dir)
- endif
- endfor
- endfor
-endfunction
-
-command! -bar Helptags :call pathogen#helptags()
-
-" Execute the given command. This is basically a backdoor for --remote-expr.
-function! pathogen#execute(...) abort
- for command in a:000
- execute command
- endfor
- return ''
-endfunction
-
-" Section: Unofficial
-
-function! pathogen#is_absolute(path) abort
- return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
-endfunction
-
-" Given a string, returns all possible permutations of comma delimited braced
-" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
-" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
-" and globbed. Actual globs are preserved.
-function! pathogen#expand(pattern) abort
- if a:pattern =~# '{[^{}]\+}'
- let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
- let found = map(split(pat, ',', 1), 'pre.v:val.post')
- let results = []
- for pattern in found
- call extend(results, pathogen#expand(pattern))
- endfor
- return results
- elseif a:pattern =~# '{}'
- let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
- let post = a:pattern[strlen(pat) : -1]
- return map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
- else
- return [a:pattern]
- endif
-endfunction
-
-" \ on Windows unless shellslash is set, / everywhere else.
-function! pathogen#slash() abort
- return !exists("+shellslash") || &shellslash ? '/' : '\'
-endfunction
-
-function! pathogen#separator() abort
- return pathogen#slash()
-endfunction
-
-" Convenience wrapper around glob() which returns a list.
-function! pathogen#glob(pattern) abort
- let files = split(glob(a:pattern),"\n")
- return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
-endfunction "}}}1
-
-" Like pathogen#glob(), only limit the results to directories.
-function! pathogen#glob_directories(pattern) abort
- return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
-endfunction "}}}1
-
-" Remove duplicates from a list.
-function! pathogen#uniq(list) abort
- let i = 0
- let seen = {}
- while i < len(a:list)
- if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
- call remove(a:list,i)
- elseif a:list[i] ==# ''
- let i += 1
- let empty = 1
- else
- let seen[a:list[i]] = 1
- let i += 1
- endif
- endwhile
- return a:list
-endfunction
-
-" Backport of fnameescape().
-function! pathogen#fnameescape(string) abort
- if exists('*fnameescape')
- return fnameescape(a:string)
- elseif a:string ==# '-'
- return '\-'
- else
- return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
- endif
-endfunction
-
-" Like findfile(), but hardcoded to use the runtimepath.
-function! pathogen#runtime_findfile(file,count) abort "{{{1
- let rtp = pathogen#join(1,pathogen#split(&rtp))
- let file = findfile(a:file,rtp,a:count)
- if file ==# ''
- return ''
- else
- return fnamemodify(file,':p')
- endif
-endfunction
-
-" Section: Deprecated
-
-function! s:warn(msg) abort
- echohl WarningMsg
- echomsg a:msg
- echohl NONE
-endfunction
-
-" Prepend all subdirectories of path to the rtp, and append all 'after'
-" directories in those subdirectories. Deprecated.
-function! pathogen#runtime_prepend_subdirectories(path) abort
- call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
- return pathogen#surround(a:path . pathogen#slash() . '{}')
-endfunction
-
-function! pathogen#incubate(...) abort
- let name = a:0 ? a:1 : 'bundle/{}'
- call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
- return pathogen#interpose(name)
-endfunction
-
-" Deprecated alias for pathogen#interpose().
-function! pathogen#runtime_append_all_bundles(...) abort
- if a:0
- call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
- else
- call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
- endif
- return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
-endfunction
-
-if exists(':Vedit')
- finish
-endif
-
-let s:vopen_warning = 0
-
-function! s:find(count,cmd,file,lcd)
- let rtp = pathogen#join(1,pathogen#split(&runtimepath))
- let file = pathogen#runtime_findfile(a:file,a:count)
- if file ==# ''
- return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
- endif
- if !s:vopen_warning
- let s:vopen_warning = 1
- let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
- else
- let warning = ''
- endif
- if a:lcd
- let path = file[0:-strlen(a:file)-2]
- execute 'lcd `=path`'
- return a:cmd.' '.pathogen#fnameescape(a:file) . warning
- else
- return a:cmd.' '.pathogen#fnameescape(file) . warning
- endif
-endfunction
-
-function! s:Findcomplete(A,L,P)
- let sep = pathogen#slash()
- let cheats = {
- \'a': 'autoload',
- \'d': 'doc',
- \'f': 'ftplugin',
- \'i': 'indent',
- \'p': 'plugin',
- \'s': 'syntax'}
- if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
- let request = cheats[a:A[0]].a:A[1:-1]
- else
- let request = a:A
- endif
- let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
- let found = {}
- for path in pathogen#split(&runtimepath)
- let path = expand(path, ':p')
- let matches = split(glob(path.sep.pattern),"\n")
- call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
- call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
- for match in matches
- let found[match] = 1
- endfor
- endfor
- return sort(keys(found))
-endfunction
-
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
-command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
-
-" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
diff --git a/vim/boxdraw/bdua2b.pl b/vim/boxdraw/bdua2b.pl
deleted file mode 100644
index 2e94b9a..0000000
--- a/vim/boxdraw/bdua2b.pl
+++ /dev/null
@@ -1,91 +0,0 @@
-# Convert +-| style drawings into utf characters
-# BoxDraw-unicode-ascii to box
-# 2003-11-24 10:12:22 created by nsg
-# 2003-11-25 13:16:17 renamed and small fix in "intelligence"
-# 2004-06-18 14:18:11 boxsets
-# 2004-06-21 21:41:30 hex input codes
-use strict;
-use utf8;
-use 5.8.0;
-use Getopt::Std;
-
-our (
- $opt_s, # boxset 's', 'd', 'v' or 'h'
- $opt_x, # convert hex digits into appropriate bd characters
- $opt_t, # ternary codes ' ' .. 'p'
-);
-getopts("s:xt");
-$opt_s||='s';
-
-my $o_utf8='--0251--001459--50585a----------0202----0c1c----525e------------51--51--53--5f--54--60------------------------------------------00185c--003468------------------1024----2c3c--------------------56--62--65--6b--------------------------------------------------505b5d----------506769----------5561------------646a------------57--63----------66--6c------------------------------------------------------------------01';
-
-binmode (STDOUT, ":utf8");
-my %boxset=(
-# 1|.,'}\u{25',"1 (_2 ]\ o_utf8) {~ 4#.2*#:i.16
- 's'=>" \x{2502}\x{2500}\x{2514}\x{2502}\x{2502}\x{250c}\x{251c}\x{2500}\x{2518}\x{2500}\x{2534}\x{2510}\x{2524}\x{252c}\x{253c}\n",
- 'd'=>" \x{2551}\x{2550}\x{255a}\x{2551}\x{2551}\x{2554}\x{2560}\x{2550}\x{255d}\x{2550}\x{2569}\x{2557}\x{2563}\x{2566}\x{256c}\n",
- 'h'=>" \x{2502}\x{2550}\x{2558}\x{2502}\x{2502}\x{2552}\x{255e}\x{2550}\x{255b}\x{2550}\x{2567}\x{2555}\x{2561}\x{2564}\x{256a}\n",
- 'v'=>" \x{2551}\x{2500}\x{2559}\x{2551}\x{2551}\x{2553}\x{255f}\x{2500}\x{255c}\x{2500}\x{2568}\x{2556}\x{2562}\x{2565}\x{256b}\n",
-);
-
-my $BOX=$boxset{$opt_s} || $boxset{'s'};
-
-my $prev='';
-my $pprev='';
-while(<STDIN>) {
- process_line();
-}
-process_line();
-
-sub process_line
-{
- my $out='';
- for(my $i=0; $i<length($prev); ++$i) {
- my $code=0;
- my $c=substr($prev,$i,1);
- if( $opt_x ) {
- $code=0;
- $code=hex($c) if $c=~/[[:xdigit:]]/;
- } elsif( $opt_t ) {
- $code=0;
- if( ord($c)>32 ) {
- $c=ord($c)-32;
- for(0..3){$code =($code>>2)+(($c%3)<<6); $c=int($c/3);}
- $c=chr(hex('25'.substr($o_utf8, $code*2,2)));
- }
- $code=0;
- } else {
- if( $c=~/[-+\|]/ ) {
- $code |= 1 if substr($pprev,$i ,1)=~/[\|+]/ ;
- $code |= 2 if substr($prev ,$i+1,1)=~/[-+]/ ;
- $code |= 4 if substr($_ ,$i ,1)=~/[\|+]/ ;
- $code |= 8 if substr($prev ,$i-1,1)=~/[-+]/ ;
-
- $code = 10 if $code && '-' eq $c;
- $code = 5 if $code && '|' eq $c;
- }
- }
- $out.=$code?substr($BOX,$code,1):$c;
- }
- print $out;
- $pprev=$prev;
- $prev=$_;
-}
-
-#
-#
-# 0001 02
-# 0010 00
-# 0011 14
-# 0100 02
-# 0101 02
-# 0110 0c
-# 0111 1c
-# 1000 00
-# 1001 18
-# 1010 00
-# 1011 34
-# 1100 10
-# 1101 24
-# 1110 2c
-# 1111 3c
diff --git a/vim/boxdraw/bdub2a.pl b/vim/boxdraw/bdub2a.pl
deleted file mode 100644
index 4482923..0000000
--- a/vim/boxdraw/bdub2a.pl
+++ /dev/null
@@ -1,30 +0,0 @@
-# Convert +-| style drawings into utf characters
-# BoxDraw-unicode-box to ascii
-# 2003-11-25 12:48:17 -- created by nsg
-
-use 5.8.0;
-use strict;
-use utf8;
-# binmode (STDOUT, ":utf8"); # incompatible with perl 5.6.1
-# binmode (STDIN, ":utf8"); # incompatible with perl 5.6.1
-
-while(<STDIN>) {
- my $l=length;
- tr/┌┬â”╓╥╖╒╤╕╔╦╗├┼┤╟╫╢╞╪╡╠╬╣└┴┘╙╨╜╘╧╛╚╩â•/++++++++++++++++++++++++++++++++++++/;
- tr/â•â”€â”‚â•‘/\-\-\|\|/;
- printf "%03d ",$l;
- print ;
-}
-
-# corners/splits:
-# ┌┬â”╓╥╖╒╤╕╔╦╗ 6ec
-# ├┼┤╟╫╢╞╪╡╠╬╣ 7fd
-# └┴┘╙╨╜╘╧╛╚╩╠3b9
-# round corners:
-# 256d 256e
-# 2570 256f
-# horizontal
-# ╠─
-# vertical
-# │ ║
-
diff --git a/vim/boxdraw/boxdraw.txt b/vim/boxdraw/boxdraw.txt
deleted file mode 100644
index b821a43..0000000
--- a/vim/boxdraw/boxdraw.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-Summary
--------
- * Draw diagrams and tables using "real box drawing characters" (AKA ANSI
-art).
- * Move rectangular/linear blocks of text around.
- * Trace box-drawing typeset diagrams -- follow the lines, etc.
-
-Detailed description
---------------------
-These scripts facilitate drawing simple 'ANSI' graphic containing box
-drawing characters (not just '+', '-' and '|', but REAL box drawing
-characters). It can be useful to draw diagrams and fancy tables (at
-least, I use it this way).
-
-Upon sourcing the script defines several macros:
-
-<shift+arrow> -- moves cursor in specified direction leaving trail of
-box drawing characters, making all joins and crossings.
-g+<arrow> -- follow line of boxdrawing characters until it reaches
-intersection or ends.
-<shift+arrow> in visual mode -- move selected rectangular block in
-specified direction.
-\e -- ends box drawing mode (unmap shift+arrows macros and restore
-virtualedit value)
-\b -- restarts box drawing (map shift+arrows macros and set virtual
- edit=all)
-\s -- selects 'single-line' boxdrawing characters
-\d -- selects 'double-line' boxdrawing characters
-\a -- convert all characters in selection into ascii '+', '-', '|' (utf8
- only, not implemented)
-("\" prefix may be changed by changing mapleader variable, see :h mapleader)
-
-When rectangular block is selected, it can be moved around using
-<shift-arrow> keys. Unfortunately, as of version 6.1 multibyte
-characters and rectangular blocks do not live together too good, so this
-feature is experimental.
-
-When line block is selected, <shift-up> and <shift-down> moves it up or down
-nondestructively, <shift-left> decreases indent and <shift-up> increases
-indent.
-
-Currently box drawing is supported for utf8 and cp437 (DOS) encodings.
-
-Script does not use any "weird" box drawing characters from unicode set
-that are not present in, say, cp437. So, it is safe to save utf-8 file
-in any single byte encoding that contains regular single box drawing
-characters.
-This script also contains mapping that converts all boxdrawing
-characters in current selection into ascii '+', '-', '|'.
-
-If vim encoding is single byte, this script assumes cp437 (DOS). Most
-encodings have boxdrawing characters at the same place, however, some
-(notably, koi8-r) have them in different code postions.
-If you want to use it with encoding that contains such
-characters in diferent place, please drop me a note -- I will be happy
-to add support for that codepage too.
-
-To help you determine which boxdrawing characters are suppored by your
-terminal I have included file sampler.txt. Just type it (or cat it) on
-the termianal and encoding that labels the block that looks "right" will
-be your supported encoding.
-
-Note for PuTTY users
---------------------
-
-It turns out that PuTTY does not translate Shift+Arrow combination into
-X key code (like xterm does), so mappings will not work for this
-terminal. I have modified initialization script to use <arrows> instead
-of <shift>+<arrows> in Unix environment.
-
-Perl scripts
-------------
-
-Some box-drawing related procedures are more naturally done with
-external scripts. These scripts take ascii standard input and produce
-utf8 encoded standard output.
-
-bdua2b.pl -- converts regular '+-|'-style drawing into single-line utf8
- boxdrawing. This script has does not just blindly replace characters,
- but instead looks to the neighbourhood and chooses boxdrawing
- character that fits best. Use this script as a filter to convert
- existing ascii drawings.
- Option -ss selects single border characters, -sd -- double border,
- -sh -- single vertical double horizontal, -sv single horizontal double
- vertical.
-
-outline.pl -- outlines groups of similar characters in the input with
- boxdrawing characters. Option -d makes output twice as wide, options
- -s* select boxdrawing flavor as in previous script.
- For example,
-
- aaaacc
- abbcc
- ccbbc
- cccb
-
-will be converted into
-
- ┌───┬─â”
- │┌─┬┘┌┘
- ├┴â”â””â”│
- │ â””â”├┘
- └──┴┘
-
-or
-
- ┌───────┬───â”
- │ ┌───┬─┘ ┌─┘
- ├─┴─┠└─┠│
- │ └─┠├─┘
- └─────┴─┘
-
-
-Both scripts were tested with ActivePerl 5.6.1.
-
-Plans:
-------
-* Support double boxes in a cleaner way.
-
-Installation
-------------
-Copy boxdraw.vim to the place where you normally keep vim scripts (e.g. ~/.vim
-or c:\vim\vimfiles) and source it every time you want to draw a diagram or nice
-table.
-
-You may wish also to add this to your menu by adding a line to your .gvimrc
-(_gvimrc) file (use actual path to boxdraw.vim):
-:menu Tools.Bo&x\ Draw :so ~/.vim/boxdraw.vim<CR>
-
-Environment
------------
-I run Windows and use boxdraw.vim in gvim (it supports utf-8 very
-nicely) and bd-single in vim (its support of utf-8 is kind of unclear
-for me). Both major Windows monospaced fonts (Courier New and Lucida
-Console) support wide range of Unicode characters, including box
-drawing.
-
-Why use box drawing characters?
--------------------------------
-These characters are in Unicode standard for compatibility with wide
-range of existing 8-bit encodings that have them. The wording of Unicode
-standard discourages usage of such characters, other than for the
-purpose of converting between encodigns and storage of legacy data.
-Having said all that I found that sometimes a picture, even crude and
-primitive, is worth pages of explanations. Just about the only way to
-include picture in source code is to use ascii or "ansi" art. Ascii is
-more compatible, but "ansi" looks way better. Since I have to use
-Unicode to include cyrillic characters in comments anyway, I decided to
-stop on "ansi" art as a format of choice for in-source drawings.
-
-Author
-------
-Andrew Nikitin <nsg21@hotmail.com>
-
-History
--------
-2002-01-09 -- v0.0 -- initial upload, single boxes in utf-8 encoding
-2002-01-10 -- v0.1 -- double boxes
-2002-01-30 -- v0.2 -- single-byte, box->ascii conversion
-2003-11-24 -- v0.3 -- perl scripts + some rectangular block movements
-2004-06-18 -- v0.4 -- following the lines, updated perl scripts
-2004-11-26 -- v1.0 -- combined single-byte and utf8 versions, included
-sampler.txt to help determine encoding
-2008-12-17 -- v1.1 -- special processing for line-block movements, changed cabbr for perl
diff --git a/vim/boxdraw/boxdraw.vim b/vim/boxdraw/boxdraw.vim
deleted file mode 100644
index 284232f..0000000
--- a/vim/boxdraw/boxdraw.vim
+++ /dev/null
@@ -1,291 +0,0 @@
-" Box drawing module for Vim 6.0
-" (C) Andrew Nikitin, 2002
-" 2002-01-07 -- created by nsg
-" 2002-01-08 -- first box drawing (single only)
-" 2002-01-09 -- (00:42) fixed col(".") bug (note vim bug k"tylj does not retu)
-" 2002-01-09 -- optimize
-" 2002-01-10 -- double boxes
-" 2002-01-16 -- use script-local var and access function instead of global
-" 2002-01-30 -- ,a mapping (box->ascii conversion)
-" 2003-11-10 -- implemented MB avoiding "number Ctl-V"
-" 2004-06-18 -- fixed ToAscii so it replaces "─"; trace path (g+arrow)
-" 2004-06-23 -- merged single-byte and utf-8 support in one file
-" 2004-06-30 -- do not use shift+arrows unless in win32
-" 2008-12-17 -- special processing for line-block movements, changed cabbr for
-" perl
-
-
-let s:o_utf8='--0251--001459--50585a----------0202----0c1c----525e------------51--51--53--5f--54--60------------------------------------------00185c--003468------------------1024----2c3c--------------------56--62--65--6b--------------------------------------------------505b5d----------506769----------5561------------646a------------57--63----------66--6c------------------------------------------------------------------01'
-let s:i_utf8='44cc11------------------14------50------05------41------15--------------51--------------54--------------45--------------55--------------------------------------88221824289060a009060a81428219262a9162a29864a889468a9966aa14504105------40010410'
-let s:o_cp437='--b3ba--c4c0d3--cdd4c8----------b3b3----dac3----d5c6------------ba--ba--d6--c7--c9--cc------------------------------------------c4d9bd--c4c1d0------------------bfb4----c2c5--------------------b7--b6--d2--d7--------------------------------------------------cdbebc----------cdcfca----------b8b5------------d1d8------------bb--b9----------cb--ce'
-let s:i_cp437='----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------115191626090a222a08242815005455415445519260a288aa82a88aa894698640609182466994114'
-
-let s:scriptfile=expand("<sfile>:h")
-
-"
-" Activate mode. Assigned to ,b macro.
-"
-fu! <SID>S()
- if has("gui_running")
- " se enc=utf8
- en
- let s:ve=&ve
- setl ve=all
- " Note that typical terminal emulator program (Putty, in particular) does
- " not support Shift arrows too good. You will, probably, have to redefines
- " those to, say,
- " ,<Up> etc.
- if has("win32")
- " Under Windows Shift+Arrows works quite smooth, unlike most terminals
- nm <S-Up> :call <SID>M(1,'k')<CR>
- nm <S-Down> :call <SID>M(16,'j')<CR>
- nm <S-Left> :call <SID>M(64,'h')<CR>
- nm <S-Right> :call <SID>M(4,'l')<CR>
- nm g<Up> :call <SID>G(0)<CR>
- nm g<Right> :call <SID>G(1)<CR>
- nm g<Down> :call <SID>G(2)<CR>
- nm g<Left> :call <SID>G(3)<CR>
- vm <S-Up> <esc>:call <SID>MB('k')<CR>
- vm <S-Down> <esc>:call <SID>MB('j')<CR>
- vm <S-Left> <esc>:call <SID>MB('h')<CR>
- vm <S-Right> <esc>:call <SID>MB('l')<CR>
- else
- nm <Up> :call <SID>M(1,'k')<CR>
- nm <Down> :call <SID>M(16,'j')<CR>
- nm <Left> :call <SID>M(64,'h')<CR>
- nm <Right> :call <SID>M(4,'l')<CR>
- nm g<Up> :call <SID>G(0)<CR>
- nm g<Right> :call <SID>G(1)<CR>
- nm g<Down> :call <SID>G(2)<CR>
- nm g<Left> :call <SID>G(3)<CR>
- vm <Up> <esc>:call <SID>MB('k')<CR>
- vm <Down> <esc>:call <SID>MB('j')<CR>
- vm <Left> <esc>:call <SID>MB('h')<CR>
- vm <Right> <esc>:call <SID>MB('l')<CR>
- en
- vmap <Leader>a :ToAscii<cr>
- nm <Leader>e :call <SID>E()<CR>
- nm <Leader>s :call <SID>SetLT(1)<CR>
- nm <Leader>d :call <SID>SetLT(2)<CR>
- exec "cabbr <"."buffer> perl perl ".s:scriptfile
-
- let s:bdlt=1
- nm <Leader>b x
- nun <Leader>b
-endf
-
-fu! s:SetLT(thickness)
- let s:bdlt=a:thickness
-endf
-
-" Deactivate mode.
-" Unmap macros, restore &ve option
-fu! <SID>E()
- if has("win32")
- " Under Windows Shift+Arrows works quite smooth, unlike most terminals
- nun <S-Up>
- nun <S-Down>
- nun <S-Left>
- nun <S-Right>
- nun g<Up>
- nun g<Right>
- nun g<Down>
- nun g<Left>
- vu <S-Up>
- vu <S-Down>
- vu <S-Left>
- vu <S-Right>
- else
- nun <Up>
- nun <Down>
- nun <Left>
- nun <Right>
- nun g<Up>
- nun g<Right>
- nun g<Down>
- nun g<Left>
- vu <Up>
- vu <Down>
- vu <Left>
- vu <Right>
- en
- nun <Leader>e
- nm <buffer> <Leader>b :call <SID>S()<CR>
- cuna <buffer> perl
- let &ve=s:ve
- unlet s:ve
- "echo "Finished Boxdrawing mode"
-endf
-
-fu! s:GetBoxCode(char)
- " check if symbol from unicode boxdrawing range
- " E2=1110(0010)
- " 25= 10(0101)xx
- if 'utf-8'== &enc
- if(0xE2==char2nr(a:char[0])&&0x25==char2nr(a:char[1])/4)
- retu '0x'.strpart(s:i_utf8,2*(char2nr(a:char[1])%4*64+char2nr(a:char[2])%64),2)
- en
- else " Assume cp437 encoding
- retu '0x'.strpart(s:i_cp437,2*char2nr(a:char),2)
- en
- retu 0
-endf
-
-" Try neihgbour in direction 'd' if c is true. Mask m for the direction
-" should also be supplied.
-" Function returns neighboring bit
-" Unicode entries are encoded in utf8 as
-" 7 bit : 0vvvvvvv
-" 11 bit : 110vvvvv 10vvvvvv
-" 16 bit : 1110vvvv 10vvvvvv 10vvvvvv
-fu! s:T(c,d,m)
- if(a:c)
- exe 'norm mt'.a:d.'"tyl`t'
- let c=s:GetBoxCode(@t)
- retu c%a:m*4/a:m
- en
- retu 0
-endf
-
-" 3*4^x, where x=0,1,2,3
-" fu! s:Mask(x)
-" retu ((6+a:x*(45+a:x*(-54+a:x*27)))/2)
-" endf
-
-" Move cursor (follow) in specified direction
-" Return new direction if new position is valid, -1 otherwise
-" dir: 'kljh'
-" ^>V<
-" 0123
-" mask: 3 12 48 192
-" let @x=3|echo (6+@x*(45+@x*(-54+@x*27)))/2
-"
-fu! <SID>F(d)
- exe 'norm '.('kljh'[a:d]).'"tyl'
- let c=s:GetBoxCode(@t)
- let i=0
- let r=-1
- while i<4
- if 0!=c%4 && a:d!=(i+2)%4
- if r<0
- let r=i
- else
- retu -1
- endif
- endif
- let c=c/4
- let i=i+1
- endw
- retu r
-endf
-
-fu! <SID>G(d)
- let y=line(".")
- let x=virtcol(".")
- let n=a:d
- while n>=0
- let n=s:F(n)
- if y==line(".") && x==virtcol(".")
- echo "Returned to same spot"
- break
- endif
- endw
-endf
-
-" Move cursor in specified direction (d= h,j,k or l). Mask s for
-" the direction should also be supplied
-"
-fu! <SID>M(s,d)
- let t=@t
- let x=s:T(1<col("."),'h',16)*64+s:T(line(".")<line("$"),'j',4)*16+s:T(1,'l',256)*4+s:T(1<line("."),'k',64)
- let @t=t
- let c=a:s*s:bdlt+x-x%(a:s*4)/a:s*a:s
- "echo 'need c='.c.' x='.x
- if 'utf-8'==&enc
- let o=strpart(s:o_utf8,2*c,2)
- if o!='--' && o!=''
- exe "norm r\<C-V>u25".o.a:d
- en
- else
- let o=strpart(s:o_cp437,2*c,2)
- if o!='--' && o!=''
- exe "norm r\<C-V>x".o.a:d
- en
- en
-" "echo "Boxdrawing mode"
-endf
-
-scriptencoding utf8
-command! -range ToAscii :silent <line1>,<line2>s/┌\|┬\|â”\|â•“\|â•¥\|â•–\|â•’\|╤\|â••\|â•”\|╦\|â•—\|├\|┼\|┤\|â•Ÿ\|â•«\|â•¢\|â•ž\|╪\|â•¡\|â• \|╬\|â•£\|â””\|â”´\|┘\|â•™\|╨\|â•œ\|╘\|╧\|â•›\|â•š\|â•©\|â•/+/ge|:silent <line1>,<line2>s/[│║]/\|/ge|:silent <line1>,<line2>s/[â•â”€]/-/ge
-
-command! -range ToHorz :<line1>,<line2>s/─\|â•/-/g
-command! -range ToHorz2 :<line1>,<line2>s/─/-/g
-" 0000000: 636f 6d6d 616e 6421 202d 7261 6e67 6520 command! -range
-" 0000010: 546f 486f 727a 203a 3c6c 696e 6531 3e2c ToHorz :<line1>,
-" 0000020: 3c6c 696e 6532 3e73 2fe2 9480 5c7c e295 <line2>s/...\|..
-" 0000030: 9029 2f6f 2f67 0d0a .)/o/g..
-command! -range ToVert :<line1>,<line2>s/│\|║/\|/g
-
-" Move block dispatch
-fu! s:MB(d)
- if visualmode()=='' || visualmode()=='v'
- call s:MRB(a:d)
- elseif visualmode()=='V'
- call s:MLB(a:d)
- en
-endf
-
-" Move line block
-fu! s:MLB(d)
- if a:d=='j' || a:d=='k'
- let l:cmd= "norm gv\"yd".a:d."\"yP1V"
- exe l:cmd
- elseif a:d=='h'
- normal gv
- :'<,'>s/^.//
- normal gv
- elseif a:d=='l'
- normal gv
- :'<,'>s/^/ /
- normal gv
- en
-endf
-
-" Move Rectangular block
-" sideeffect: stores contents of a block in "y
-" 1<C-V> does not work good in 6.0 when multibyte characters are involved
-" gvp does not work good ...
-" gv also has some problems
-" See http://vim.sourceforge.net/tips/tip.php?tip_id=808 for different way to
-" paste
-fu! s:MRB(d)
- " It seems that rectangular boxes and multibyte do not live together too
- " good asof version 6.3
- " Normally something like
- " exe 'norm gv"yygvr '.a:d.'1<C-V>"ypgv'
- " should have worked
- let l:y1=line(".")
- let l:x1=virtcol(".")
- "echo l:x1."-".l:y1
- normal gv"yygvo
- let l:y2=line(".")
- let l:x2=virtcol(".")
- if l:x1>l:x2 | let l:t=l:x1 | let l:x1=l:x2 | let l:x2=l:t | endif
- if l:y1>l:y2 | let l:t=l:y1 | let l:y1=l:y2 | let l:y2=l:t | endif
- let l:pos=l:y1."G0"
- if 1<l:x1 | let l:pos=l:pos.(l:x1-1)."l" | endif
- let l:size=""
- if 0<l:y2-l:y1 | let l:size=l:size.(l:y2-l:y1)."j" | endif
- if 0<l:x2-l:x1 | let l:size=l:size.(l:x2-l:x1)."l" | endif
- exe "normal gvr ".l:pos.a:d."".l:size."d\"yPgvjk"
-endf
-
-
-:nmap <buffer> ,b :call <SID>S()<CR>
-if has("win32")
- " Under win32 activate boxdrwaing mode upon start.
- " If undesirable, prepend with :nmap ,b
- "
- :normal ,b
-else
-en
diff --git a/vim/boxdraw/outline.pl b/vim/boxdraw/outline.pl
deleted file mode 100644
index f095e7f..0000000
--- a/vim/boxdraw/outline.pl
+++ /dev/null
@@ -1,74 +0,0 @@
-# outlines groups of similar characters
-# 2003-11-24 15:07:28 Created by nsg
-# 2004-06-18 14:29:45 changed hex boxset to x; added double, horz, vert boxsets
-use strict;
-use utf8;
-use Getopt::Std;
-
-our (
- $opt_s, # boxset (x=hex)
- $opt_d, # double each input character
- $opt_e, # output encoding
-);
-getopts("s:de:");
-$opt_s='s' if '' eq $opt_s;
-$opt_e='utf8' if '' eq $opt_e;
-
-binmode (STDIN, ":encoding($opt_e)");
-binmode (STDOUT, ":encoding($opt_e)");
-#binmode (STDOUT, ":encoding(utf8)");
-my $p='';
-
-my %boxset=(
-# 1|.,'}\u{25',"1 (_2 ]\ o_utf8) {~ 4#.2*#:i.16
- 's'=>" \x{2502}\x{2500}\x{2514}\x{2502}\x{2502}\x{250c}\x{251c}\x{2500}\x{2518}\x{2500}\x{2534}\x{2510}\x{2524}\x{252c}\x{253c}\n",
- 'd'=>" \x{2551}\x{2550}\x{255a}\x{2551}\x{2551}\x{2554}\x{2560}\x{2550}\x{255d}\x{2550}\x{2569}\x{2557}\x{2563}\x{2566}\x{256c}\n",
- 'h'=>" \x{2502}\x{2550}\x{2558}\x{2502}\x{2502}\x{2552}\x{255e}\x{2550}\x{255b}\x{2550}\x{2567}\x{2555}\x{2561}\x{2564}\x{256a}\n",
- 'v'=>" \x{2551}\x{2500}\x{2559}\x{2551}\x{2551}\x{2553}\x{255f}\x{2500}\x{255c}\x{2500}\x{2568}\x{2556}\x{2562}\x{2565}\x{256b}\n",
-);
-
-my $BOX=$boxset{$opt_s} || $boxset{'s'};
-
-# corners/splits:
-# ┌┬â”╓╥╖╒╤╕╔╦╗ 6ec
-# ├┼┤╟╫╢╞╪╡╠╬╣ 7fd
-# └┴┘╙╨╜╘╧╛╚╩╠3b9
-# round corners:
-# 256d 256e
-# 2570 256f
-# horizontal
-# ╠─
-# vertical
-# │ ║
-
-while(<STDIN>){
- chomp;
- s/./$&$&/g if $opt_d;
- process_line();
- $p=$_;
-}
-$_='';
-process_line();
-
-sub process_line
-{
- my $out;
- my $l=length;
- $l=length($p) if length($p)>$l;
- for my$i(0..$l) {
- my $c=0;
- $c|=1 if sc($p,$i-1) ne sc($p,$i);
- $c|=2 if sc($p,$i) ne sc($_,$i);
- $c|=4 if sc($_,$i) ne sc($_,$i-1);
- $c|=8 if sc($_,$i-1) ne sc($p,$i-1);
- $out.=substr($BOX,$c,1) if 'x' ne $opt_s;
- $out.=sprintf"%1x",$c if 'x' eq $opt_s;
- }
- print "$out\n";
-}
-
-sub sc # (str, index)
-{
- return ' ' if 0>$_[1] || $_[1]>=length($_[0]);
- return substr($_[0],$_[1],1);
-}
diff --git a/vim/boxdraw/sampler.txt b/vim/boxdraw/sampler.txt
deleted file mode 100644
index 1f6aad8..0000000
--- a/vim/boxdraw/sampler.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Box drawing characters sampler. (C) nsg, 2004
-╒╕╔╗╓╖┌╥─â”
-├┼╢║╟╜└╫┬┤ utf-8
-╞╪╣╠╩╤╦╬╡│
-╘╧â•â•šâ•â•›â•™â•¨â”´â”˜
-¢¦¥¨‚·§¤ˆƒ
-¯µ°…¡ª½Š‡ koi8-r, koi8-u*
-†‰´±¸»¶¾¼²
-„€º­« ¹®©¬
-ոɻֿÚÒ·
-³Ã¶Ó×Å´ÇÙº cp437 (A.K.A dos), cp737, cp86x, cp85x*, cp895, etc.
-ƾÌÑÎصÈ˹
-ÔÍÊϼÀÁÄн
diff --git a/vim/colors/solarized.vim b/vim/colors/solarized.vim
deleted file mode 100644
index 175a0b5..0000000
--- a/vim/colors/solarized.vim
+++ /dev/null
@@ -1,1117 +0,0 @@
-" Name: Solarized vim colorscheme
-" Author: Ethan Schoonover <es@ethanschoonover.com>
-" URL: http://ethanschoonover.com/solarized
-" (see this url for latest release & screenshots)
-" License: OSI approved MIT license (see end of this file)
-" Created: In the middle of the night
-" Modified: 2011 May 05
-"
-" Usage "{{{
-"
-" ---------------------------------------------------------------------
-" ABOUT:
-" ---------------------------------------------------------------------
-" Solarized is a carefully designed selective contrast colorscheme with dual
-" light and dark modes that runs in both GUI, 256 and 16 color modes.
-"
-" See the homepage above for screenshots and details.
-"
-" ---------------------------------------------------------------------
-" OPTIONS:
-" ---------------------------------------------------------------------
-" See the "solarized.txt" help file included with this colorscheme (in the
-" "doc" subdirectory) for information on options, usage, the Toggle Background
-" function and more. If you have already installed Solarized, this is available
-" from the Solarized menu and command line as ":help solarized"
-"
-" ---------------------------------------------------------------------
-" INSTALLATION:
-" ---------------------------------------------------------------------
-" Two options for installation: manual or pathogen
-"
-" MANUAL INSTALLATION OPTION:
-" ---------------------------------------------------------------------
-"
-" 1. Download the solarized distribution (available on the homepage above)
-" and unarchive the file.
-" 2. Move `solarized.vim` to your `.vim/colors` directory.
-" 3. Move each of the files in each subdirectories to the corresponding .vim
-" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
-" directory as .vim/autoload/togglebg.vim).
-"
-" RECOMMENDED PATHOGEN INSTALLATION OPTION:
-" ---------------------------------------------------------------------
-"
-" 1. Download and install Tim Pope's Pathogen from:
-" https://github.com/tpope/vim-pathogen
-"
-" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
-" a subdirectory of the `.vim/bundle` directory.
-"
-" a. **clone with git:**
-"
-" $ cd ~/.vim/bundle
-" $ git clone git://github.com/altercation/vim-colors-solarized.git
-"
-" b. **or move manually into the pathogen bundle directory:**
-" In the parent directory of vim-colors-solarized:
-"
-" $ mv vim-colors-solarized ~/.vim/bundle/
-"
-" MODIFY VIMRC:
-"
-" After either Option 1 or Option 2 above, put the following two lines in your
-" .vimrc:
-"
-" syntax enable
-" set background=dark
-" colorscheme solarized
-"
-" or, for the light background mode of Solarized:
-"
-" syntax enable
-" set background=light
-" colorscheme solarized
-"
-" I like to have a different background in GUI and terminal modes, so I can use
-" the following if-then. However, I find vim's background autodetection to be
-" pretty good and, at least with MacVim, I can leave this background value
-" assignment out entirely and get the same results.
-"
-" if has('gui_running')
-" set background=light
-" else
-" set background=dark
-" endif
-"
-" See the Solarized homepage at http://ethanschoonover.com/solarized for
-" screenshots which will help you select either the light or dark background.
-"
-" ---------------------------------------------------------------------
-" COLOR VALUES
-" ---------------------------------------------------------------------
-" Download palettes and files from: http://ethanschoonover.com/solarized
-"
-" L\*a\*b values are canonical (White D65, Reference D50), other values are
-" matched in sRGB space.
-"
-" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
-" --------- ------- ---- ------- ----------- ---------- ----------- -----------
-" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
-" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
-" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
-" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
-" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
-" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
-" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
-" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
-" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
-" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
-" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
-" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
-" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
-" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
-" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
-" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
-"
-" ---------------------------------------------------------------------
-" COLORSCHEME HACKING
-" ---------------------------------------------------------------------
-"
-" Useful commands for testing colorschemes:
-" :source $VIMRUNTIME/syntax/hitest.vim
-" :help highlight-groups
-" :help cterm-colors
-" :help group-name
-"
-" Useful links for developing colorschemes:
-" http://www.vim.org/scripts/script.php?script_id=2937
-" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
-" http://www.frexx.de/xterm-256-notes/"
-"
-" }}}
-" Environment Specific Overrides "{{{
-" Allow or disallow certain features based on current terminal emulator or
-" environment.
-
-" Terminals that support italics
-let s:terms_italic=[
- \"rxvt",
- \"gnome-terminal"
- \]
-" For reference only, terminals are known to be incomptible.
-" Terminals that are in neither list need to be tested.
-let s:terms_noitalic=[
- \"iTerm.app",
- \"Apple_Terminal"
- \]
-if has("gui_running")
- let s:terminal_italic=1 " TODO: could refactor to not require this at all
-else
- let s:terminal_italic=0 " terminals will be guilty until proven compatible
- for term in s:terms_italic
- if $TERM_PROGRAM =~ term
- let s:terminal_italic=1
- endif
- endfor
-endif
-
-" }}}
-" Default option values"{{{
-" ---------------------------------------------------------------------
-" s:options_list is used to autogenerate a list of all non-default options
-" using "call SolarizedOptions()" or with the "Generate .vimrc commands"
-" Solarized menu option. See the "Menus" section below for the function itself.
-let s:options_list=[
- \'" this block of commands has been autogenerated by solarized.vim and',
- \'" includes the current, non-default Solarized option values.',
- \'" To use, place these commands in your .vimrc file (replacing any',
- \'" existing colorscheme commands). See also ":help solarized"',
- \'',
- \'" ------------------------------------------------------------------',
- \'" Solarized Colorscheme Config',
- \'" ------------------------------------------------------------------',
- \]
-let s:colorscheme_list=[
- \'syntax enable',
- \'set background='.&background,
- \'colorscheme solarized',
- \]
-let s:defaults_list=[
- \'" ------------------------------------------------------------------',
- \'',
- \'" The following items are available options, but do not need to be',
- \'" included in your .vimrc as they are currently set to their defaults.',
- \''
- \]
-let s:lazycat_list=[
- \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"',
- \'" ------------------------------------------------------------------',
- \]
-
-function! s:SetOption(name,default)
- if type(a:default) == type(0)
- let l:wrap=''
- let l:ewrap=''
- else
- let l:wrap='"'
- let l:ewrap='\"'
- endif
- if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default
- exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"'
- exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")'
- else
- exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")'
- endif
-endfunction
-
-if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
- let s:solarized_termtrans_default = 1
-else
- let s:solarized_termtrans_default = 0
-endif
-call s:SetOption("termtrans",s:solarized_termtrans_default)
-call s:SetOption("degrade",0)
-call s:SetOption("bold",1)
-call s:SetOption("underline",1)
-call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support
-call s:SetOption("termcolors",16)
-call s:SetOption("contrast","normal")
-call s:SetOption("visibility","normal")
-call s:SetOption("diffmode","normal")
-call s:SetOption("hitrail",0)
-call s:SetOption("menu",1)
-
-"}}}
-" Colorscheme initialization "{{{
-" ---------------------------------------------------------------------
-hi clear
-if exists("syntax_on")
- syntax reset
-endif
-let colors_name = "solarized"
-
-"}}}
-" GUI & CSApprox hexadecimal palettes"{{{
-" ---------------------------------------------------------------------
-"
-" Set both gui and terminal color values in separate conditional statements
-" Due to possibility that CSApprox is running (though I suppose we could just
-" leave the hex values out entirely in that case and include only cterm colors)
-" We also check to see if user has set solarized (force use of the
-" neutral gray monotone palette component)
-if (has("gui_running") && g:solarized_degrade == 0)
- let s:vmode = "gui"
- let s:base03 = "#002b36"
- let s:base02 = "#073642"
- let s:base01 = "#586e75"
- let s:base00 = "#657b83"
- let s:base0 = "#839496"
- let s:base1 = "#93a1a1"
- let s:base2 = "#eee8d5"
- let s:base3 = "#fdf6e3"
- let s:yellow = "#b58900"
- let s:orange = "#cb4b16"
- let s:red = "#dc322f"
- let s:magenta = "#d33682"
- let s:violet = "#6c71c4"
- let s:blue = "#268bd2"
- let s:cyan = "#2aa198"
- "let s:green = "#859900" "original
- let s:green = "#719e07" "experimental
-elseif (has("gui_running") && g:solarized_degrade == 1)
- " These colors are identical to the 256 color mode. They may be viewed
- " while in gui mode via "let g:solarized_degrade=1", though this is not
- " recommened and is for testing only.
- let s:vmode = "gui"
- let s:base03 = "#1c1c1c"
- let s:base02 = "#262626"
- let s:base01 = "#4e4e4e"
- let s:base00 = "#585858"
- let s:base0 = "#808080"
- let s:base1 = "#8a8a8a"
- let s:base2 = "#d7d7af"
- let s:base3 = "#ffffd7"
- let s:yellow = "#af8700"
- let s:orange = "#d75f00"
- let s:red = "#af0000"
- let s:magenta = "#af005f"
- let s:violet = "#5f5faf"
- let s:blue = "#0087ff"
- let s:cyan = "#00afaf"
- let s:green = "#5f8700"
-elseif g:solarized_termcolors != 256 && &t_Co >= 16
- let s:vmode = "cterm"
- let s:base03 = "8"
- let s:base02 = "0"
- let s:base01 = "10"
- let s:base00 = "11"
- let s:base0 = "12"
- let s:base1 = "14"
- let s:base2 = "7"
- let s:base3 = "15"
- let s:yellow = "3"
- let s:orange = "9"
- let s:red = "1"
- let s:magenta = "5"
- let s:violet = "13"
- let s:blue = "4"
- let s:cyan = "6"
- let s:green = "2"
-elseif g:solarized_termcolors == 256
- let s:vmode = "cterm"
- let s:base03 = "234"
- let s:base02 = "235"
- let s:base01 = "239"
- let s:base00 = "240"
- let s:base0 = "244"
- let s:base1 = "245"
- let s:base2 = "187"
- let s:base3 = "230"
- let s:yellow = "136"
- let s:orange = "166"
- let s:red = "124"
- let s:magenta = "125"
- let s:violet = "61"
- let s:blue = "33"
- let s:cyan = "37"
- let s:green = "64"
-else
- let s:vmode = "cterm"
- let s:bright = "* term=bold cterm=bold"
-" let s:base03 = "0".s:bright
-" let s:base02 = "0"
-" let s:base01 = "2".s:bright
-" let s:base00 = "3".s:bright
-" let s:base0 = "4".s:bright
-" let s:base1 = "6".s:bright
-" let s:base2 = "7"
-" let s:base3 = "7".s:bright
-" let s:yellow = "3"
-" let s:orange = "1".s:bright
-" let s:red = "1"
-" let s:magenta = "5"
-" let s:violet = "5".s:bright
-" let s:blue = "4"
-" let s:cyan = "6"
-" let s:green = "2"
- let s:base03 = "DarkGray" " 0*
- let s:base02 = "Black" " 0
- let s:base01 = "LightGreen" " 2*
- let s:base00 = "LightYellow" " 3*
- let s:base0 = "LightBlue" " 4*
- let s:base1 = "LightCyan" " 6*
- let s:base2 = "LightGray" " 7
- let s:base3 = "White" " 7*
- let s:yellow = "DarkYellow" " 3
- let s:orange = "LightRed" " 1*
- let s:red = "DarkRed" " 1
- let s:magenta = "DarkMagenta" " 5
- let s:violet = "LightMagenta" " 5*
- let s:blue = "DarkBlue" " 4
- let s:cyan = "DarkCyan" " 6
- let s:green = "DarkGreen" " 2
-
-endif
-"}}}
-" Formatting options and null values for passthrough effect "{{{
-" ---------------------------------------------------------------------
- let s:none = "NONE"
- let s:none = "NONE"
- let s:t_none = "NONE"
- let s:n = "NONE"
- let s:c = ",undercurl"
- let s:r = ",reverse"
- let s:s = ",standout"
- let s:ou = ""
- let s:ob = ""
-"}}}
-" Background value based on termtrans setting "{{{
-" ---------------------------------------------------------------------
-if (has("gui_running") || g:solarized_termtrans == 0)
- let s:back = "NONE"
-else
- let s:back = "NONE"
-endif
-"}}}
-" Alternate light scheme "{{{
-" ---------------------------------------------------------------------
-if &background == "light"
- let s:temp03 = s:base03
- let s:temp02 = s:base02
- let s:temp01 = s:base01
- let s:temp00 = s:base00
- let s:base03 = s:base3
- let s:base02 = s:base2
- let s:base01 = s:base1
- let s:base00 = s:base0
- let s:base0 = s:temp00
- let s:base1 = s:temp01
- let s:base2 = s:temp02
- let s:base3 = s:temp03
- if (s:back != "NONE")
- let s:back = s:base03
- endif
-endif
-"}}}
-" Optional contrast schemes "{{{
-" ---------------------------------------------------------------------
-if g:solarized_contrast == "high"
- let s:base01 = s:base00
- let s:base00 = s:base0
- let s:base0 = s:base1
- let s:base1 = s:base2
- let s:base2 = s:base3
- let s:back = s:back
-endif
-if g:solarized_contrast == "low"
- let s:back = s:base02
- let s:ou = ",underline"
-endif
-"}}}
-" Overrides dependent on user specified values and environment "{{{
-" ---------------------------------------------------------------------
-if (g:solarized_bold == 0 || &t_Co == 8 )
- let s:b = ""
- let s:bb = ",bold"
-else
- let s:b = ",bold"
- let s:bb = ""
-endif
-
-if g:solarized_underline == 0
- let s:u = ""
-else
- let s:u = ",underline"
-endif
-
-if g:solarized_italic == 0 || s:terminal_italic == 0
- let s:i = ""
-else
- let s:i = ",italic"
-endif
-"}}}
-" Highlighting primitives"{{{
-" ---------------------------------------------------------------------
-
-exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
-exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
-exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
-exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
-exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
-exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
-exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
-exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
-exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
-exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
-exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
-exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
-exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
-exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
-exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
-exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
-exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
-exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
-
-exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
-exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
-exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
-exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
-exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
-exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
-exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
-exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
-exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
-exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
-exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
-exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
-exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
-exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
-exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
-exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
-exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
-exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
-
-exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
-exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
-exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
-exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
-exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
-exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
-exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
-exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
-exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'"
-exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
-exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
-exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
-" revbb (reverse bold for bright colors) is only set to actual bold in low
-" color terminals (t_co=8, such as OS X Terminal.app) and should only be used
-" with colors 8-15.
-exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'"
-exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'"
-
-if has("gui_running")
- exe "let s:sp_none = ' guisp=".s:none ."'"
- exe "let s:sp_back = ' guisp=".s:back ."'"
- exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
- exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
- exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
- exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
- exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
- exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
- exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
- exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
- exe "let s:sp_green = ' guisp=".s:green ."'"
- exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
- exe "let s:sp_orange = ' guisp=".s:orange ."'"
- exe "let s:sp_red = ' guisp=".s:red ."'"
- exe "let s:sp_magenta = ' guisp=".s:magenta."'"
- exe "let s:sp_violet = ' guisp=".s:violet ."'"
- exe "let s:sp_blue = ' guisp=".s:blue ."'"
- exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
-else
- let s:sp_none = ""
- let s:sp_back = ""
- let s:sp_base03 = ""
- let s:sp_base02 = ""
- let s:sp_base01 = ""
- let s:sp_base00 = ""
- let s:sp_base0 = ""
- let s:sp_base1 = ""
- let s:sp_base2 = ""
- let s:sp_base3 = ""
- let s:sp_green = ""
- let s:sp_yellow = ""
- let s:sp_orange = ""
- let s:sp_red = ""
- let s:sp_magenta = ""
- let s:sp_violet = ""
- let s:sp_blue = ""
- let s:sp_cyan = ""
-endif
-
-"}}}
-" Basic highlighting"{{{
-" ---------------------------------------------------------------------
-" note that link syntax to avoid duplicate configuration doesn't work with the
-" exe compiled formats
-
-exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
-
-exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
-" *Comment any comment
-
-exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
-" *Constant any constant
-" String a string constant: "this is a string"
-" Character a character constant: 'c', '\n'
-" Number a number constant: 234, 0xff
-" Boolean a boolean constant: TRUE, false
-" Float a floating point constant: 2.3e10
-
-exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
-" *Identifier any variable name
-" Function function name (also: methods for classes)
-"
-exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
-" *Statement any statement
-" Conditional if, then, else, endif, switch, etc.
-" Repeat for, do, while, etc.
-" Label case, default, etc.
-" Operator "sizeof", "+", "*", etc.
-" Keyword any other keyword
-" Exception try, catch, throw
-
-exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
-" *PreProc generic Preprocessor
-" Include preprocessor #include
-" Define preprocessor #define
-" Macro same as Define
-" PreCondit preprocessor #if, #else, #endif, etc.
-
-exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
-" *Type int, long, char, etc.
-" StorageClass static, register, volatile, etc.
-" Structure struct, union, enum, etc.
-" Typedef A typedef
-
-exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
-" *Special any special symbol
-" SpecialChar special character in a constant
-" Tag you can use CTRL-] on this
-" Delimiter character that needs attention
-" SpecialComment special things inside a comment
-" Debug debugging statements
-
-exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
-" *Underlined text that stands out, HTML links
-
-exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
-" *Ignore left blank, hidden |hl-Ignore|
-
-exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
-" *Error any erroneous construct
-
-exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
-" *Todo anything that needs extra attention; mostly the
-" keywords TODO FIXME and XXX
-"
-"}}}
-" Extended highlighting "{{{
-" ---------------------------------------------------------------------
-if (g:solarized_visibility=="high")
- exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
- exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none
-elseif (g:solarized_visibility=="low")
- exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
- exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
-else
- exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02
- exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none
-endif
-exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb
-exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb
-exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb
-exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
-exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
-exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
-exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_none
-exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
-if ( has("gui_running") || &t_Co > 8 )
- exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00
-else
- exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02
-endif
-exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
-exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb
-exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
-exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb
-exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
-exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
-if (g:solarized_diffmode=="high")
-exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
-exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
-exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
-exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
-elseif (g:solarized_diffmode=="low")
-exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green
-exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow
-exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none
-exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue
-else " normal
- if has("gui_running")
-exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green
-exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow
-exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02
-exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue
- else
-exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green
-exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow
-exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02
-exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue
- endif
-endif
-exe "hi! SignColumn" .s:fmt_none .s:fg_base0
-exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
-exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
-exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
-exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
-exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb
-exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb
-exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb
-exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb
-exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
-exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
-exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu
-exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
-exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
-exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
-exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
-hi! link lCursor Cursor
-exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
-
-"}}}
-" vim syntax highlighting "{{{
-" ---------------------------------------------------------------------
-"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
-"hi! link vimComment Comment
-"hi! link vimLineComment Comment
-hi! link vimVar Identifier
-hi! link vimFunc Function
-hi! link vimUserFunc Function
-hi! link helpSpecial Special
-hi! link vimSet Normal
-hi! link vimSetEqual Normal
-exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none
-exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none
-exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none
-exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none
-exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none
-exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none
-exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none
-exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none
-exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none
-exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none
-exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none
-exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none
-exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none
-"}}}
-" diff highlighting "{{{
-" ---------------------------------------------------------------------
-hi! link diffAdded Statement
-hi! link diffLine Identifier
-"}}}
-" git & gitcommit highlighting "{{{
-"git
-"exe "hi! gitDateHeader"
-"exe "hi! gitIdentityHeader"
-"exe "hi! gitIdentityKeyword"
-"exe "hi! gitNotesHeader"
-"exe "hi! gitReflogHeader"
-"exe "hi! gitKeyword"
-"exe "hi! gitIdentity"
-"exe "hi! gitEmailDelimiter"
-"exe "hi! gitEmail"
-"exe "hi! gitDate"
-"exe "hi! gitMode"
-"exe "hi! gitHashAbbrev"
-"exe "hi! gitHash"
-"exe "hi! gitReflogMiddle"
-"exe "hi! gitReference"
-"exe "hi! gitStage"
-"exe "hi! gitType"
-"exe "hi! gitDiffAdded"
-"exe "hi! gitDiffRemoved"
-"gitcommit
-"exe "hi! gitcommitSummary"
-exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none
-hi! link gitcommitUntracked gitcommitComment
-hi! link gitcommitDiscarded gitcommitComment
-hi! link gitcommitSelected gitcommitComment
-exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none
-exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none
-exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none
-hi! link gitcommitNoBranch gitcommitBranch
-exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none
-exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none
-"exe "hi! gitcommitUnmergedType"
-"exe "hi! gitcommitType"
-"exe "hi! gitcommitNoChanges"
-"exe "hi! gitcommitHeader"
-exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none
-exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none
-exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none
-exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none
-exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none
-exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none
-hi! link gitcommitDiscardedArrow gitcommitDiscardedFile
-hi! link gitcommitSelectedArrow gitcommitSelectedFile
-hi! link gitcommitUnmergedArrow gitcommitUnmergedFile
-"exe "hi! gitcommitArrow"
-"exe "hi! gitcommitOverflow"
-"exe "hi! gitcommitBlank"
-" }}}
-" html highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none
-exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none
-exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none
-exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none
-exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none
-exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none
-exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none
-"}}}
-" perl highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
-exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
-
-"}}}
-" tex highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
-exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
-"}}}
-" ruby highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
-"rubyInclude
-"rubySharpBang
-"rubyAccess
-"rubyPredefinedVariable
-"rubyBoolean
-"rubyClassVariable
-"rubyBeginEnd
-"rubyRepeatModifier
-"hi! link rubyArrayDelimiter Special " [ , , ]
-"rubyCurlyBlock { , , }
-
-"hi! link rubyClass Keyword
-"hi! link rubyModule Keyword
-"hi! link rubyKeyword Keyword
-"hi! link rubyOperator Operator
-"hi! link rubyIdentifier Identifier
-"hi! link rubyInstanceVariable Identifier
-"hi! link rubyGlobalVariable Identifier
-"hi! link rubyClassVariable Identifier
-"hi! link rubyConstant Type
-"}}}
-" haskell syntax highlighting"{{{
-" ---------------------------------------------------------------------
-" For use with syntax/haskell.vim : Haskell Syntax File
-" http://www.vim.org/scripts/script.php?script_id=3034
-" See also Steffen Siering's github repository:
-" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
-" ---------------------------------------------------------------------
-"
-" Treat True and False specially, see the plugin referenced above
-let hs_highlight_boolean=1
-" highlight delims, see the plugin referenced above
-let hs_highlight_delimiters=1
-
-exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
-
-exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
-
-exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
-exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
-exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
-exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
-hi! link hsImportParams Delimiter
-hi! link hsDelimTypeExport Delimiter
-hi! link hsModuleStartLabel hsStructure
-hi! link hsModuleWhereLabel hsModuleStartLabel
-
-" following is for the haskell-conceal plugin
-" the first two items don't have an impact, but better safe
-exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
-
-"}}}
-" pandoc markdown syntax highlighting "{{{
-" ---------------------------------------------------------------------
-
-"PandocHiLink pandocNormalBlock
-exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
-exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
-hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
-hi! link pandocCodeBlock pandocVerbatimBlock
-hi! link pandocCodeBlockDelim pandocVerbatimBlock
-exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
-
-" Definitions
-" ---------------------------------------------------------------------
-let s:fg_pdef = s:fg_violet
-exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
-exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
-exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
-exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-
-" Tables
-" ---------------------------------------------------------------------
-let s:fg_ptable = s:fg_blue
-exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
-hi! link pandocTableStructureTop pandocTableStructre
-hi! link pandocTableStructureEnd pandocTableStructre
-exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
-exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
-exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
-
-" Headings
-" ---------------------------------------------------------------------
-let s:fg_phead = s:fg_orange
-exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
-exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
-exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-
-" Links
-" ---------------------------------------------------------------------
-exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
-exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
-exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
-exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
-exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
-exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
-exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
-exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
-exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
-exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
-exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
-exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
-exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
-
-" Main Styles
-" ---------------------------------------------------------------------
-exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
-exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
-
-exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
-exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
-hi! link pandocEscapedCharacter pandocEscapePair
-hi! link pandocLineBreak pandocEscapePair
-
-" Embedded Code
-" ---------------------------------------------------------------------
-exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
-hi! link pandocMetadataTitle pandocMetadata
-
-"}}}
-" Utility autocommand "{{{
-" ---------------------------------------------------------------------
-" In cases where Solarized is initialized inside a terminal vim session and
-" then transferred to a gui session via the command `:gui`, the gui vim process
-" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
-" related code that sets gui specific values isn't executed.
-"
-" Currently, Solarized sets only the cterm or gui values for the colorscheme
-" depending on gui or terminal mode. It's possible that, if the following
-" autocommand method is deemed excessively poor form, that approach will be
-" used again and the autocommand below will be dropped.
-"
-" However it seems relatively benign in this case to include the autocommand
-" here. It fires only in cases where vim is transferring from terminal to gui
-" mode (detected with the script scope s:vmode variable). It also allows for
-" other potential terminal customizations that might make gui mode suboptimal.
-"
-autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
-"}}}
-" Highlight Trailing Space {{{
-" Experimental: Different highlight when on cursorline
-function! s:SolarizedHiTrail()
- if g:solarized_hitrail==0
- hi! clear solarizedTrailingSpace
- else
- syn match solarizedTrailingSpace "\s*$"
- exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red
- endif
-endfunction
-augroup SolarizedHiTrail
- autocmd!
- if g:solarized_hitrail==1
- autocmd! Syntax * call s:SolarizedHiTrail()
- autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif
- endif
-augroup END
-" }}}
-" Menus "{{{
-" ---------------------------------------------------------------------
-" Turn off Solarized menu by including the following assignment in your .vimrc:
-"
-" let g:solarized_menu=0
-
-function! s:SolarizedOptions()
- new "new buffer
- setf vim "vim filetype
- let failed = append(0, s:defaults_list)
- let failed = append(0, s:colorscheme_list)
- let failed = append(0, s:options_list)
- let failed = append(0, s:lazycat_list)
- 0 "jump back to the top
-endfunction
-if !exists(":SolarizedOptions")
- command SolarizedOptions :call s:SolarizedOptions()
-endif
-
-function! SolarizedMenu()
- if exists("g:loaded_solarized_menu")
- try
- silent! aunmenu Solarized
- endtry
- endif
- let g:loaded_solarized_menu = 1
-
- if g:colors_name == "solarized" && g:solarized_menu != 0
-
- amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized<CR>
- amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized<CR>
- amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized<CR>
- an &Solarized.&Contrast.-sep- <Nop>
- amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast'<CR>
-
- amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized<CR>
- amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized<CR>
- amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized<CR>
- an &Solarized.&Visibility.-sep- <Nop>
- amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility'<CR>
-
- amenu &Solarized.&Background.&Toggle\ Background :ToggleBG<CR>
- amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized<CR>
- amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized<CR>
- an &Solarized.&Background.-sep- <Nop>
- amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg<CR>
-
- if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif
- exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized<CR>"
- if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif
- exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized<CR>"
- if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif
- exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized<CR>"
-
- amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized<CR>
- amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized<CR>
- amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized<CR>
-
- if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif
- exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized<CR>"
- an &Solarized.&Experimental.-sep- <Nop>
- amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail'<CR>
-
- an &Solarized.-sep1- <Nop>
-
- amenu &Solarized.&Autogenerate\ options :SolarizedOptions<CR>
-
- an &Solarized.-sep2- <Nop>
-
- amenu &Solarized.&Help.&Solarized\ Help :help solarized<CR>
- amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg<CR>
- amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu<CR>
-
- an 9999.77 &Help.&Solarized\ Colorscheme :help solarized<CR>
- an 9999.78 &Help.&Toggle\ Background :help togglebg<CR>
- an 9999.79 &Help.-sep3- <Nop>
-
- endif
-endfunction
-
-autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif
-
-"}}}
-" License "{{{
-" ---------------------------------------------------------------------
-"
-" Copyright (c) 2011 Ethan Schoonover
-"
-" Permission is hereby granted, free of charge, to any person obtaining a copy
-" of this software and associated documentation files (the "Software"), to deal
-" in the Software without restriction, including without limitation the rights
-" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-" copies of the Software, and to permit persons to whom the Software is
-" furnished to do so, subject to the following conditions:
-"
-" The above copyright notice and this permission notice shall be included in
-" all copies or substantial portions of the Software.
-"
-" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-" THE SOFTWARE.
-"
-" vim:foldmethod=marker:foldlevel=0
-"}}}
diff --git a/vim/compiler/tex.vim b/vim/compiler/tex.vim
deleted file mode 120000
index 96de836..0000000
--- a/vim/compiler/tex.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/compiler/tex.vim \ No newline at end of file
diff --git a/vim/doc/DrawIt.txt b/vim/doc/DrawIt.txt
deleted file mode 100644
index 8e72f64..0000000
--- a/vim/doc/DrawIt.txt
+++ /dev/null
@@ -1,489 +0,0 @@
-DrawIt.txt* The DrawIt Tool Nov 25, 2013
-
-Authors: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
- Sylvain Viart <molo@multimania.com>
- (remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2004-2013 Charles E. Campbell
- 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 and DrawItPlugin.vim are provided *as is*; it 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
-
- 1. Contents......................: |drawit-contents|
- 2. DrawIt Manual.................: |drawit|
- 3. DrawIt Usage..................: |drawit-usage|
- Starting....................: |drawit-start|
- Stopping....................: |drawit-stop|
- User Map Protection.........: |drawit-protect|
- Drawing.....................: |drawit-drawing|
- Tip.........................: |drawit-tip|
- 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* {{{1
- *drawit-manual*
- /===============+============================================================\
- || Starting & | ||
- || Stopping | Explanation ||
- ++--------------+-----------------------------------------------------------++
- || \di | start DrawIt |drawit-start| ||
- || \ds | stop DrawIt |drawit-stop| ||
- || :DIstart | start DrawIt |drawit-start| ||
- || :DIstart S | start DrawIt in single-bar mode |drawit-start| ||
- || :DIstart D | start DrawIt in double-bar mode |drawit-start| ||
- || :DIsngl | start DrawIt in single-bar mode |drawit-start| |drawit-sngl| ||
- || :DIdbl | start DrawIt in double-bar mode |drawit-start| |drawit-dbl| ||
- || :DIstop | stop DrawIt |drawit-stop| ||
- || :DrawIt[!] | start/stop DrawIt |drawit-start| |drawit-stop| ||
- || | ||
- ++==============+===========================================================++
- || 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 |drawit-drawing| ||
- || <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 cursor left |drawit-move| ||
- || <s-right> | move cursor right, inserting lines/space as needed ||
- || <s-up> | move cursor up, inserting lines/space as needed ||
- || <s-down> | move cursor 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) ||
- ||<s-leftmouse> | drag and draw with current brush |drawit-brush| ||
- ||<c-leftmouse> | drag and move current brush |drawit-brush| ||
- || | ||
- ||==============+===========================================================++
- ||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 canvas ||
- || | routine must first be used to create such a block. The ||
- || | canvas routine will query the user for the number of ||
- || | lines to hold |'textwidth'| spaces. ||
- || +-----------------------------------------------------------++
- || \a | draw arrow from corners of visual-block selected region || |drawit-a|
- || \b | draw box on visual-block selected region || |drawit-b|
- || \c | the canvas routine (will query user, see above) || |drawit-c|
- || \e | draw an ellipse on visual-block selected region || |drawit-e|
- || \f | flood figure with a character (you will be prompted) || |drawit-f|
- || \l | draw line from corners of visual-block selected region || |drawit-l|
- || \s | spacer: appends spaces up to the textwidth (default: 78) || |drawit-s|
- || | ||
- ++==============+===========================================================++
- || Function and Explanation ||
- ++--------------+-----------------------------------------------------------++
- || :call SetDrawIt('vertical','horizontal','crossing','\','/','X','*') ||
- || set drawing characters for motions for moving ||
- || and for the ellipse drawing boundary |drawit-setdrawit| ||
- || default motion ||
- || | up/down, ||
- || - left/right, ||
- || + -| crossing, ||
- || \ downright, ||
- || / downleft, and ||
- || X \/ crossing ||
- ++=======================+==================================================++
- || Commands | Explanation ||
- ++-----------------------+--------------------------------------------------++
- || :SetBrush a-z | sets brush (register) to given register ||
- || :'<,'>SetBrush a-z | yanks visual block to brush |drawit-brush||| ||
- || :DInrml | switch to normal mode |drawit-nrml| ||
- || :DIsngl | switch to single-line mode |drawit-sngl| ||
- || :DIdbl | switch to double-line mode |drawit-dbl| ||
- \============================================================================/
-
-
-==============================================================================
-3. DrawIt Usage *drawit-usage* {{{1
-
-STARTING *drawit-start* {{{2
-\di (starts in normal drawing mode) *drawit-\di*
-:DrawIt (starts in normal drawing mode) *drawit-DrawIt*
-:DIstart (starts in normal drawing mode) *drawit-DIstart*
-:DIstart S (starts in single-bar drawing mode)
-:DIstart D (starts in double-bar drawing mode)
-:DInrml (starts in normal drawing mode) *drawit-DInrml*
-:DIsngl (starts in single-bar drawing mode) *drawit-DIsngl*
-:DIdbl (starts in double-bar drawing mode) *drawit-DIdbl*
-
-Typically one puts <drawit.vim> into the .vim/plugin directory
-(vimfiles\plugin for Windows) 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|).
-
-With a trailing 'S', :DIstart will begin in single-bar mode (see |drawit-sngl|).
-With a trailing 'D', :DIstart will begin in double-bar mode (see |drawit-dbl|).
-Similarly, :DIsngl and :DIdbl will start DrawIt as well as begin in
-single-bar or double-bar mode, respectively.
-
-A message, "[DrawIt]", will appear on the message line.
-
-
-STOPPING *drawit-stop* {{{2
-\ds
-:DIstop
-:DrawIt!
-
-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.
-
- *drawit-utf16*
- *drawit-utf8* *drawit-unicode*
-NORMAL, SINGLE BAR, AND DOUBLE BAR MODES *drawit-sngl* *drawit-dbl*
-:DInrml :DIsngl :DIdbl
-
-One may use these commands to start up Drawit in normal, single-bar, or
-double-bar modes, respectively. When your |'encoding'| is utf-8 or utf-16,
-DrawIt supports drawing with special box characters (single-bar, double_bar).
-These commands are also used to switch to normal, single-bar, or double-bar
-modes.
-
-
-USER MAP PROTECTION *drawit-protect* {{{2
-
-Starting DrawIt causes it to set up a number of maps which facilitate drawing.
-DrawIt accommodates users with conflicting maps by saving both maps and user
-options and before setting them to what DrawIt needs. When you stop DrawIt
-(|drawit-stop|), DrawIt will restore the user's maps and options as they were
-before DrawIt was started.
-
-
-OPTIONS *drawit-options* {{{2
-
- *g:drawit_insertmode*
-g:drawit_insertmode : if this variable exists and is 1 then maps are
- made which make cursor-control drawing available
- while in insert mode, too. Otherwise, DrawIt's
- maps only affect normal mode.
-
-DRAWING *drawit-drawing* {{{2
-
-After DrawIt is started, use the number pad or arrow keys to move the cursor
-about. As the cursor moves, DrawIt will then leave appropriate "line"
-characters behind as you move horizontally, vertically, or diagonally, and
-will transparently enlarge your file to accommodate your drawing as needed.
-The trail will consist of -, |, \, / characters (depending on which direction
-and SetDrawIt() changes), and + and X characters where line crossings occur.
-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.
-
-Another tool that may be used to convert Ascii-art into nice pictures is
-available at https://github.com/christiangoltz/shaape .
-
-
-CHANGING DRAWING CHARACTERS *drawit-setdrawit* {{{2
-
-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 /.
-The default setting is equivalent to: >
-
- :call SetDrawIt('|','-','+','\','/','X','*')
-<
-where SetDrawit()'s arguments refer, in order, to the >
-
- vertical drawing character
- horizontal drawing character
- horizontal/vertical crossing drawing character
- down right drawing character
- down left drawing character
- diagonal crossing drawing character
- ellipse boundary drawing character
-<
-
-TIP *drawit-tip*
-
-I have found that sometimes one or more of the <home>, <end>, <pageup>,
-and <pagedown> keys give unique sequences but are not interpreted
-properly by Vim. This problem impacts DrawIt as it uses those four
-keys to signify diagonal moves/drawing. One solution I use is to
-put into my <.vimrc> file mapings like:
-
- map ^V... <home>
-
-where the ellipsis (...) is the actual character sequence produced by
-hitting the key. The way to generate such maps is to type "map ",
-followed by three control-v presses, press the associated key, then
-a space followed by the proper interpretation sequence (ie. <home>).
-
-
-MOVING *drawit-move* *drawit-moving* {{{2
-
-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* {{{2
-<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 behavior will be restored when the <space> key toggles DrawIt back
-to regular DrawIt mode.
-
-
-EXAMPLES *drawit-example* {{{2
-
-Needless to say, the square spirals which follow were done with DrawIt and
-a bit of block editing with Vim: >
-
- +------------ -----------+ +------------ -----------+ +------------
- |+----------+ +---------+| |+----------+ +---------+| |+----------+
- ||+--------+| |+-------+|| ||+--------+| |+-------+|| ||+--------+|
- |||-------+|| ||+------||| |||-------+|| ||+------||| |||-------+||
- ||+-------+|| ||+------+|| ||+-------+|| ||+------+|| ||+-------+||
- |+---------+| |+--------+| |+---------+| |+--------+| |+---------+|
- +-----------+ +----------+ +-----------+ +----------+ +-----------+
-
-VISUAL BLOCK MODE FOR ARROWS LINES BOXES AND ELLIPSES *drawit-visblock* {{{2
-
-\a : draw arrow from corners of visual-block selected region *drawit-a*
-\b : draw box on visual-block selected region *drawit-b*
-\c : the canvas routine (will query user, see above) *drawit-c*
-\e : draw an ellipse on visual-block selected region *drawit-e*
-\f : flood figure with a character (you will be prompted) *drawit-f*
-\l : draw line from corners of visual-block selected region *drawit-l*
-\s : spacer: appends spaces up to the textwidth (default: 78) *drawit-s*
-
-The DrawIt package has been merged with Sylvain Viart's drawing package (by
-permission) 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 (|drawit-e|).
-
-One may create a block of spaces for these maps to operate in; the "canvas"
-routine (\c) will help create such blocks. First, the s:Canvas() routine will
-query the user for the number of lines s/he wishes to have, and will then fill
-those lines with spaces out to the |'textwidth'| if user has specified it;
-otherwise, the display width will be used.
-
-Although most of the maps use visual-block selection, that isn't true of the
-\f map. Instead, it assume that you have already drawn some closed figure
-and want to fill it with some character.
-
-The Sylvain Viart functions and the ellipse drawing function depend
-upon using visual block mode. As a 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
- * ctrl-v (move) \e
- DrawIt then draws an ellipse
-<
-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. The internal s:AutoCanvas() will convert tabs to spaces and will
-extend with spaces as needed to support the visual block. Note that when
-DrawIt is enabled, virtualedit is also enabled (to "all").
->
- Examples:
-
- __ _ *************** +-------+
- \_ _/ **** **** | |
- \_ _/ ** ---------> ** | |
- \_ _/ **** **** | |
- \__/ <------- *************** +-------+
-
- \l \a \e and \a \b
-<
- *drawit-setbrush*
-BRUSHES *drawit-brush* {{{2
->
- :SetBrush [a-z]
-<
- Set the current brush to the selected brush register:
->
- ex. :SetBrush b
-
- :'<,'>SetBrush [a-z]
-<
- Select text for the brush by using visual-block mode: ctrl-v, move .
- Then set the current text into the brush register: (default brush: a)
->
- <leftmouse>
-<
- Select a visual-block region. One may use "ay, for example,
- to yank selected text to register 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.
->
- <ctrl-leftmouse>
-<
- One may drag and move a selection with <ctrl-leftmouse>. First,
- select the region using the <leftmouse>. Release the mouse button,
- then press ctrl and the <leftmouse> button; while continuing to press
- the button, move the mouse. The selected block of text will then
- move along with the cursor.
->
- \ra ... \rz
-<
- Replace text with the given register's contents (ie. the brush).
->
- \pa ... \pz
-<
- Like \ra ... \rz, except that blanks are considered to be transparent.
-
- Example: Draw the following >
- \ \
- o o
- *
- ---
-< Then use ctrl-v, move, "ay to grab a copy into register a.
- By default, the current brush uses register a (change brush
- with :SetBrush [reg]). Hold the <shift> and <leftbutton>
- keys down and move the mouse; as you move, a copy of the
- brush will be left behind.
-
-
-DRAWIT MODES *drawit-modes* {{{2
-
- -[DrawIt] regular DrawIt mode (|drawit-start|)
- -[DrawIt off] DrawIt is off (|drawit-stop| )
- -[DrawIt erase] DrawIt will erase using the number pad (|drawit-erase|)
-
- 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* {{{1
-
- 13 Sep 05, 2013 * improved s:Strlen() -- now uses |strdisplaywidth()|
- if available.
- Sep 13, 2013 * (Paul Wagland) found a case where lines were
- being drawn with the wrong character. This
- affected the Bresenham-algorithm based
- drawing facility (ie. lines and arrows
- specified by visual blocks;
- |drawit-a|, |drawit-l|).
- 12 Nov 16, 2012 * (Alexandre Viau) arrows weren't being drawn.
- Fixed.
- Nov 29, 2012 * (Kim Jang-hwan) reported that with
- g:Align_xstrlen set to 3 that the cursor was
- moved (linewise) after invocation. This
- problem also afflicted DrawIt. Fixed.
- 11 Jan 21, 2010 * (Evan Stern) several places were using
- hardcoded drawing characters instead of
- b:di_... equivalents.
- Feb 22, 2011 * for menus, &go =~# used to insure correct case
- Sep 22, 2011 * ctrl-leftmouse (see |drawit-brush|) now moves the
- selected text entirely, no longer leaving a copy
- of the text where it was initially.
- Nov 07, 2011 * included support for utf-8 box drawing characters
- Nov 16, 2011 * included support for utf-8 single-double characters
- Nov 16, 2011 * included support for cp437 box drawing characters
- Dec 06, 2011 * included support for box and line drawing (\b, \l)
- support for utf-8 / cp437 box drawing characters
- Dec 06, 2011 * fat arrows now use utf-8 characters when available
- Jan 30, 2012 * \f supported when using utf-8/cp437 box drawing
- characters as boundary characters
- 10 Jun 12, 2008 * Fixed a bug with ctrl-leftmouse (which was leaving
- a space in the original selected text)
- Mar 24, 2009 * :DrawIt starts, :DrawIt! stops DrawIt mode.
- Mar 24, 2009 * I've included <script> modifiers to the maps to
- cause rhs remapping only with mappings local to
- the script (see |:map-script|)
- 9 Sep 14, 2007 * Johann-Guenter Simon fixed a bug with s:DrawErase();
- it called SetDrawIt() and that call hadn't been
- updated to account for the new b:di_ellipse
- parameter.
- 8 Feb 12, 2007 * fixed a bug which prevented multi-character user
- maps from being restored properly
- May 03, 2007 * Extended SetDrawIt() to handle b:di_ellipse, the
- ellipse boundary drawing character
- * Changed "Holer" to "Canvas", and wrote AutoCanvas(),
- which allows one to use the visual-block drawing
- maps without creating a canvas first.
- * DrawIt implements using the ctrl-leftmouse to move
- a visual-block selected region.
- * Floods can now be done inside an ellipse
- * DrawIt's maps are now all users of <buffer>
- 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:fdm=marker
diff --git a/vim/doc/imaps.txt.gz b/vim/doc/imaps.txt.gz
deleted file mode 120000
index cf5808b..0000000
--- a/vim/doc/imaps.txt.gz
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/doc/imaps.txt.gz \ No newline at end of file
diff --git a/vim/doc/latex-suite-quickstart.txt.gz b/vim/doc/latex-suite-quickstart.txt.gz
deleted file mode 120000
index 5ef4db2..0000000
--- a/vim/doc/latex-suite-quickstart.txt.gz
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/doc/latex-suite-quickstart.txt.gz \ No newline at end of file
diff --git a/vim/doc/latex-suite.txt.gz b/vim/doc/latex-suite.txt.gz
deleted file mode 120000
index 35c3d5a..0000000
--- a/vim/doc/latex-suite.txt.gz
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/doc/latex-suite.txt.gz \ No newline at end of file
diff --git a/vim/doc/latexhelp.txt.gz b/vim/doc/latexhelp.txt.gz
deleted file mode 120000
index f8197a0..0000000
--- a/vim/doc/latexhelp.txt.gz
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/doc/latexhelp.txt.gz \ No newline at end of file
diff --git a/vim/doc/surround.txt b/vim/doc/surround.txt
deleted file mode 100644
index 30a642a..0000000
--- a/vim/doc/surround.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-*surround.txt* Plugin for deleting, changing, and adding "surroundings"
-
-Author: Tim Pope <http://tpo.pe/>
-License: Same terms as Vim itself (see |license|)
-
-This plugin is only available if 'compatible' is not set.
-
-INTRODUCTION *surround*
-
-This plugin is a tool for dealing with pairs of "surroundings." Examples
-of surroundings include parentheses, quotes, and HTML tags. They are
-closely related to what Vim refers to as |text-objects|. Provided
-are mappings to allow for removing, changing, and adding surroundings.
-
-Details follow on the exact semantics, but first, consider the following
-examples. An asterisk (*) is used to denote the cursor position.
-
- Old text Command New text ~
- "Hello *world!" ds" Hello world!
- [123+4*56]/2 cs]) (123+456)/2
- "Look ma, I'm *HTML!" cs"<q> <q>Look ma, I'm HTML!</q>
- if *x>3 { ysW( if ( x>3 ) {
- my $str = *whee!; vllllS' my $str = 'whee!';
-
-While a few features of this plugin will work in older versions of Vim,
-Vim 7 is recommended for full functionality.
-
-MAPPINGS *surround-mappings*
-
-Delete surroundings is *ds* . The next character given determines the target
-to delete. The exact nature of the target is explained in |surround-targets|
-but essentially it is the last character of a |text-object|. This mapping
-deletes the difference between the "i"nner object and "a"n object. This is
-easiest to understand with some examples:
-
- Old text Command New text ~
- "Hello *world!" ds" Hello world!
- (123+4*56)/2 ds) 123+456/2
- <div>Yo!*</div> dst Yo!
-
-Change surroundings is *cs* . It takes two arguments, a target like with
-|ds|, and a replacement. Details about the second argument can be found
-below in |surround-replacements|. Once again, examples are in order.
-
- Old text Command New text ~
- "Hello *world!" cs"' 'Hello world!'
- "Hello *world!" cs"<q> <q>Hello world!</q>
- (123+4*56)/2 cs)] [123+456]/2
- (123+4*56)/2 cs)[ [ 123+456 ]/2
- <div>Yo!*</div> cst<p> <p>Yo!</p>
-
-*ys* takes a valid Vim motion or text object as the first object, and wraps
-it using the second argument as with |cs|. (It's a stretch, but a good
-mnemonic for "ys" is "you surround".)
-
- Old text Command New text ~
- Hello w*orld! ysiw) Hello (world)!
-
-As a special case, *yss* operates on the current line, ignoring leading
-whitespace.
-
- Old text Command New text ~
- Hello w*orld! yssB {Hello world!}
-
-There is also *yS* and *ySS* which indent the surrounded text and place it
-on a line of its own.
-
-In visual mode, a simple "S" with an argument wraps the selection. This is
-referred to as the *vS* mapping, although ordinarily there will be
-additional keystrokes between the v and S. In linewise visual mode, the
-surroundings are placed on separate lines and indented. In blockwise visual
-mode, each line is surrounded.
-
-A "gS" in visual mode, known as *vgS* , behaves similarly. In linewise visual
-mode, the automatic indenting is suppressed. In blockwise visual mode, this
-enables surrounding past the end of the line with 'virtualedit' set (there
-seems to be no way in Vim Script to differentiate between a jagged end of line
-selection and a virtual block selected past the end of the line, so two maps
-were needed).
-
- *i_CTRL-G_s* *i_CTRL-G_S*
-Finally, there is an experimental insert mode mapping on <C-G>s and <C-S>.
-Beware that the latter won't work on terminals with flow control (if you
-accidentally freeze your terminal, use <C-Q> to unfreeze it). The mapping
-inserts the specified surroundings and puts the cursor between them. If,
-immediately after the mapping and before the replacement, a second <C-S> or
-carriage return is pressed, the prefix, cursor, and suffix will be placed on
-three separate lines. <C-G>S (not <C-G>s) also exhibits this behavior.
-
-TARGETS *surround-targets*
-
-The |ds| and |cs| commands both take a target as their first argument. The
-possible targets are based closely on the |text-objects| provided by Vim.
-All targets are currently just one character.
-
-Eight punctuation marks, (, ), {, }, [, ], <, and >, represent themselves
-and their counterparts. If the opening mark is used, contained whitespace is
-also trimmed. The targets b, B, r, and a are aliases for ), }, ], and >
-(the first two mirror Vim; the second two are completely arbitrary and
-subject to change).
-
-Three quote marks, ', ", `, represent themselves, in pairs. They are only
-searched for on the current line.
-
-A t is a pair of HTML or XML tags. See |tag-blocks| for details. Remember
-that you can specify a numerical argument if you want to get to a tag other
-than the innermost one.
-
-The letters w, W, and s correspond to a |word|, a |WORD|, and a |sentence|,
-respectively. These are special in that they have nothing to delete, and
-used with |ds| they are a no-op. With |cs|, one could consider them a
-slight shortcut for ysi (cswb == ysiwb, more or less).
-
-A p represents a |paragraph|. This behaves similarly to w, W, and s above;
-however, newlines are sometimes added and/or removed.
-
-REPLACEMENTS *surround-replacements*
-
-A replacement argument is a single character, and is required by |cs|, |ys|,
-and |vS|. Undefined replacement characters (with the exception of alphabetic
-characters) default to placing themselves at the beginning and end of the
-destination, which can be useful for characters like / and |.
-
-If either ), }, ], or > is used, the text is wrapped in the appropriate pair
-of characters. Similar behavior can be found with (, {, and [ (but not <),
-which append an additional space to the inside. Like with the targets above,
-b, B, r, and a are aliases for ), }, ], and >. To fulfill the common need for
-code blocks in C-style languages, <C-}> (which is really <C-]>) adds braces on
-lines separate from the content.
-
-If t or < is used, Vim prompts for an HTML/XML tag to insert. You may specify
-attributes here and they will be stripped from the closing tag. End your
-input by pressing <CR> or >. If <C-T> is used, the tags will appear on lines
-by themselves.
-
-If s is used, a leading but not trailing space is added. This is useful for
-removing parentheses from a function call with csbs.
-
-CUSTOMIZING *surround-customizing*
-
-The following adds a potential replacement on "-" (ASCII 45) in PHP files.
-(To determine the ASCII code to use, :echo char2nr("-")). The carriage
-return will be replaced by the original text.
->
- autocmd FileType php let b:surround_45 = "<?php \r ?>"
-<
-This can be used in a PHP file as in the following example.
-
- Old text Command New text ~
- print "Hello *world!" yss- <?php print "Hello world!" ?>
-
-Additionally, one can use a global variable for globally available
-replacements.
->
- let g:surround_45 = "<% \r %>"
- let g:surround_61 = "<%= \r %>"
-<
-Advanced, experimental, and subject to change: One can also prompt for
-replacement text. The syntax for this is to surround the replacement in pairs
-of low numbered control characters. If this sounds confusing, that's because
-it is (but it makes the parsing easy). Consider the following example for a
-LaTeX environment on the "l" replacement.
->
- let g:surround_108 = "\\begin{\1environment: \1}\r\\end{\1\1}"
-<
-When this replacement is used, the user is prompted with an "environment: "
-prompt for input. This input is inserted between each set of \1's.
-Additional inputs up to \7 can be used.
-
-Furthermore, one can specify a regular expression substitution to apply.
->
- let g:surround_108 = "\\begin{\1environment: \1}\r\\end{\1\r}.*\r\1}"
-<
-This will remove anything after the first } in the input when the text is
-placed within the \end{} slot. The first \r marks where the pattern begins,
-and the second where the replacement text begins.
-
-Here's a second example for creating an HTML <div>. The substitution cleverly
-prompts for an id, but only adds id="" if it is non-blank. You may have to
-read this one a few times slowly before you understand it.
->
- let g:surround_{char2nr("d")} = "<div\1id: \r..*\r id=\"&\"\1>\r</div>"
-<
-Inputting text replacements is a proof of concept at this point. The ugly,
-unintuitive interface and the brevity of the documentation reflect this.
-
-Finally, It is possible to always append a string to surroundings in insert
-mode (and only insert mode). This is useful with certain plugins and mappings
-that allow you to jump to such markings.
->
- let g:surround_insert_tail = "<++>"
-<
-ISSUES *surround-issues*
-
-Vim could potentially get confused when deleting/changing occurs at the very
-end of the line. Please report any repeatable instances of this.
-
-Do we need to use |inputsave()|/|inputrestore()| with the tag replacement?
-
-Indenting is handled haphazardly. Need to decide the most appropriate
-behavior and implement it. Right now one can do :let b:surround_indent = 1
-(or the global equivalent) to enable automatic re-indenting by Vim via |=|;
-should this be the default?
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/vim/doc/tags b/vim/doc/tags
deleted file mode 100644
index 54ecdda..0000000
--- a/vim/doc/tags
+++ /dev/null
@@ -1,56 +0,0 @@
-cs surround.txt /*cs*
-drawit DrawIt.txt /*drawit*
-drawit-DIdbl DrawIt.txt /*drawit-DIdbl*
-drawit-DInrml DrawIt.txt /*drawit-DInrml*
-drawit-DIsngl DrawIt.txt /*drawit-DIsngl*
-drawit-DIstart DrawIt.txt /*drawit-DIstart*
-drawit-DrawIt DrawIt.txt /*drawit-DrawIt*
-drawit-\di DrawIt.txt /*drawit-\\di*
-drawit-a DrawIt.txt /*drawit-a*
-drawit-b DrawIt.txt /*drawit-b*
-drawit-brush DrawIt.txt /*drawit-brush*
-drawit-c DrawIt.txt /*drawit-c*
-drawit-contents DrawIt.txt /*drawit-contents*
-drawit-dbl DrawIt.txt /*drawit-dbl*
-drawit-drawing DrawIt.txt /*drawit-drawing*
-drawit-e DrawIt.txt /*drawit-e*
-drawit-erase DrawIt.txt /*drawit-erase*
-drawit-example DrawIt.txt /*drawit-example*
-drawit-f DrawIt.txt /*drawit-f*
-drawit-history DrawIt.txt /*drawit-history*
-drawit-l DrawIt.txt /*drawit-l*
-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-s DrawIt.txt /*drawit-s*
-drawit-setbrush DrawIt.txt /*drawit-setbrush*
-drawit-setdrawit DrawIt.txt /*drawit-setdrawit*
-drawit-sngl DrawIt.txt /*drawit-sngl*
-drawit-start DrawIt.txt /*drawit-start*
-drawit-stop DrawIt.txt /*drawit-stop*
-drawit-tip DrawIt.txt /*drawit-tip*
-drawit-unicode DrawIt.txt /*drawit-unicode*
-drawit-usage DrawIt.txt /*drawit-usage*
-drawit-utf16 DrawIt.txt /*drawit-utf16*
-drawit-utf8 DrawIt.txt /*drawit-utf8*
-drawit-visblock DrawIt.txt /*drawit-visblock*
-ds surround.txt /*ds*
-g:drawit_insertmode DrawIt.txt /*g:drawit_insertmode*
-i_CTRL-G_S surround.txt /*i_CTRL-G_S*
-i_CTRL-G_s surround.txt /*i_CTRL-G_s*
-surround surround.txt /*surround*
-surround-customizing surround.txt /*surround-customizing*
-surround-issues surround.txt /*surround-issues*
-surround-mappings surround.txt /*surround-mappings*
-surround-replacements surround.txt /*surround-replacements*
-surround-targets surround.txt /*surround-targets*
-surround.txt surround.txt /*surround.txt*
-vS surround.txt /*vS*
-vgS surround.txt /*vgS*
-yS surround.txt /*yS*
-ySS surround.txt /*ySS*
-ys surround.txt /*ys*
-yss surround.txt /*yss*
diff --git a/vim/filetype.vim b/vim/filetype.vim
deleted file mode 100644
index 357aa24..0000000
--- a/vim/filetype.vim
+++ /dev/null
@@ -1,4 +0,0 @@
-augroup filetypedetect
- " Mail
- autocmd BufRead,BufNewFile *mutt-* setfiletype mail
-augroup END
diff --git a/vim/ftplugin/bib_latexSuite.vim b/vim/ftplugin/bib_latexSuite.vim
deleted file mode 120000
index 8a4a21a..0000000
--- a/vim/ftplugin/bib_latexSuite.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/bib_latexSuite.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/bibtex.vim b/vim/ftplugin/latex-suite/bibtex.vim
deleted file mode 120000
index b2187fc..0000000
--- a/vim/ftplugin/latex-suite/bibtex.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/bibtex.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/bibtools.py b/vim/ftplugin/latex-suite/bibtools.py
deleted file mode 120000
index 5246fec..0000000
--- a/vim/ftplugin/latex-suite/bibtools.py
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/bibtools.py \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/bibtools.pyc b/vim/ftplugin/latex-suite/bibtools.pyc
deleted file mode 100644
index a60798f..0000000
--- a/vim/ftplugin/latex-suite/bibtools.pyc
+++ /dev/null
Binary files differ
diff --git a/vim/ftplugin/latex-suite/brackets.vim b/vim/ftplugin/latex-suite/brackets.vim
deleted file mode 120000
index db9c202..0000000
--- a/vim/ftplugin/latex-suite/brackets.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/brackets.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/compiler.vim b/vim/ftplugin/latex-suite/compiler.vim
deleted file mode 120000
index 47f717b..0000000
--- a/vim/ftplugin/latex-suite/compiler.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/compiler.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/custommacros.vim b/vim/ftplugin/latex-suite/custommacros.vim
deleted file mode 120000
index a92ac9a..0000000
--- a/vim/ftplugin/latex-suite/custommacros.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/custommacros.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/diacritics.vim b/vim/ftplugin/latex-suite/diacritics.vim
deleted file mode 120000
index a9ebe2a..0000000
--- a/vim/ftplugin/latex-suite/diacritics.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/diacritics.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/dictionaries/SIunits b/vim/ftplugin/latex-suite/dictionaries/SIunits
deleted file mode 120000
index 8bd69c4..0000000
--- a/vim/ftplugin/latex-suite/dictionaries/SIunits
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/dictionaries/SIunits \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/dictionaries/dictionary b/vim/ftplugin/latex-suite/dictionaries/dictionary
deleted file mode 120000
index 7e157e2..0000000
--- a/vim/ftplugin/latex-suite/dictionaries/dictionary
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/dictionaries/dictionary \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/elementmacros.vim b/vim/ftplugin/latex-suite/elementmacros.vim
deleted file mode 120000
index d803bec..0000000
--- a/vim/ftplugin/latex-suite/elementmacros.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/elementmacros.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/envmacros.vim b/vim/ftplugin/latex-suite/envmacros.vim
deleted file mode 120000
index f3de31c..0000000
--- a/vim/ftplugin/latex-suite/envmacros.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/envmacros.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/folding.vim b/vim/ftplugin/latex-suite/folding.vim
deleted file mode 120000
index 6ea91bf..0000000
--- a/vim/ftplugin/latex-suite/folding.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/folding.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/macros/example b/vim/ftplugin/latex-suite/macros/example
deleted file mode 120000
index 182184b..0000000
--- a/vim/ftplugin/latex-suite/macros/example
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/macros/example \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/main.vim b/vim/ftplugin/latex-suite/main.vim
deleted file mode 120000
index 7756d01..0000000
--- a/vim/ftplugin/latex-suite/main.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/main.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/mathmacros-utf.vim b/vim/ftplugin/latex-suite/mathmacros-utf.vim
deleted file mode 120000
index eb27622..0000000
--- a/vim/ftplugin/latex-suite/mathmacros-utf.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/mathmacros-utf.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/mathmacros.vim b/vim/ftplugin/latex-suite/mathmacros.vim
deleted file mode 120000
index 69ed4ec..0000000
--- a/vim/ftplugin/latex-suite/mathmacros.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/mathmacros.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/multicompile.vim b/vim/ftplugin/latex-suite/multicompile.vim
deleted file mode 120000
index 9c862b9..0000000
--- a/vim/ftplugin/latex-suite/multicompile.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/multicompile.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/outline.py b/vim/ftplugin/latex-suite/outline.py
deleted file mode 120000
index 20f9372..0000000
--- a/vim/ftplugin/latex-suite/outline.py
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/outline.py \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/outline.pyc b/vim/ftplugin/latex-suite/outline.pyc
deleted file mode 100644
index 9963739..0000000
--- a/vim/ftplugin/latex-suite/outline.pyc
+++ /dev/null
Binary files differ
diff --git a/vim/ftplugin/latex-suite/packages.vim b/vim/ftplugin/latex-suite/packages.vim
deleted file mode 120000
index 7692662..0000000
--- a/vim/ftplugin/latex-suite/packages.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/SIunits b/vim/ftplugin/latex-suite/packages/SIunits
deleted file mode 120000
index e91d5cd..0000000
--- a/vim/ftplugin/latex-suite/packages/SIunits
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/SIunits \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/accents b/vim/ftplugin/latex-suite/packages/accents
deleted file mode 120000
index 95d9216..0000000
--- a/vim/ftplugin/latex-suite/packages/accents
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/accents \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/acromake b/vim/ftplugin/latex-suite/packages/acromake
deleted file mode 120000
index 03af1df..0000000
--- a/vim/ftplugin/latex-suite/packages/acromake
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/acromake \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/afterpage b/vim/ftplugin/latex-suite/packages/afterpage
deleted file mode 120000
index 2d5bd1d..0000000
--- a/vim/ftplugin/latex-suite/packages/afterpage
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/afterpage \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/alltt b/vim/ftplugin/latex-suite/packages/alltt
deleted file mode 120000
index 4c99323..0000000
--- a/vim/ftplugin/latex-suite/packages/alltt
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/alltt \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/amsmath b/vim/ftplugin/latex-suite/packages/amsmath
deleted file mode 120000
index 4e80d7f..0000000
--- a/vim/ftplugin/latex-suite/packages/amsmath
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/amsmath \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/amsthm b/vim/ftplugin/latex-suite/packages/amsthm
deleted file mode 120000
index 6a50fa1..0000000
--- a/vim/ftplugin/latex-suite/packages/amsthm
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/amsthm \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/amsxtra b/vim/ftplugin/latex-suite/packages/amsxtra
deleted file mode 120000
index c659cb4..0000000
--- a/vim/ftplugin/latex-suite/packages/amsxtra
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/amsxtra \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/arabic b/vim/ftplugin/latex-suite/packages/arabic
deleted file mode 120000
index 82e41b5..0000000
--- a/vim/ftplugin/latex-suite/packages/arabic
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/arabic \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/array b/vim/ftplugin/latex-suite/packages/array
deleted file mode 120000
index 88cdc82..0000000
--- a/vim/ftplugin/latex-suite/packages/array
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/array \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/babel b/vim/ftplugin/latex-suite/packages/babel
deleted file mode 120000
index 6c48b5d..0000000
--- a/vim/ftplugin/latex-suite/packages/babel
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/babel \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/bar b/vim/ftplugin/latex-suite/packages/bar
deleted file mode 120000
index 3e7bc71..0000000
--- a/vim/ftplugin/latex-suite/packages/bar
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/bar \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/biblatex b/vim/ftplugin/latex-suite/packages/biblatex
deleted file mode 120000
index 9033a18..0000000
--- a/vim/ftplugin/latex-suite/packages/biblatex
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/biblatex \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/bm b/vim/ftplugin/latex-suite/packages/bm
deleted file mode 120000
index 8c59b19..0000000
--- a/vim/ftplugin/latex-suite/packages/bm
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/bm \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/bophook b/vim/ftplugin/latex-suite/packages/bophook
deleted file mode 120000
index 232241d..0000000
--- a/vim/ftplugin/latex-suite/packages/bophook
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/bophook \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/boxedminipage b/vim/ftplugin/latex-suite/packages/boxedminipage
deleted file mode 120000
index 3b3ec81..0000000
--- a/vim/ftplugin/latex-suite/packages/boxedminipage
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/boxedminipage \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/caption2 b/vim/ftplugin/latex-suite/packages/caption2
deleted file mode 120000
index 21652a1..0000000
--- a/vim/ftplugin/latex-suite/packages/caption2
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/caption2 \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/cases b/vim/ftplugin/latex-suite/packages/cases
deleted file mode 120000
index 1128f0d..0000000
--- a/vim/ftplugin/latex-suite/packages/cases
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/cases \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/ccaption b/vim/ftplugin/latex-suite/packages/ccaption
deleted file mode 120000
index 2f67d5b..0000000
--- a/vim/ftplugin/latex-suite/packages/ccaption
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/ccaption \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/changebar b/vim/ftplugin/latex-suite/packages/changebar
deleted file mode 120000
index 435e625..0000000
--- a/vim/ftplugin/latex-suite/packages/changebar
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/changebar \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/chapterbib b/vim/ftplugin/latex-suite/packages/chapterbib
deleted file mode 120000
index b224006..0000000
--- a/vim/ftplugin/latex-suite/packages/chapterbib
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/chapterbib \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/cite b/vim/ftplugin/latex-suite/packages/cite
deleted file mode 120000
index 0d1eee7..0000000
--- a/vim/ftplugin/latex-suite/packages/cite
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/cite \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/color b/vim/ftplugin/latex-suite/packages/color
deleted file mode 120000
index 1babf39..0000000
--- a/vim/ftplugin/latex-suite/packages/color
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/color \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/comma b/vim/ftplugin/latex-suite/packages/comma
deleted file mode 120000
index ee9cc83..0000000
--- a/vim/ftplugin/latex-suite/packages/comma
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/comma \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/csquotes b/vim/ftplugin/latex-suite/packages/csquotes
deleted file mode 120000
index 1eea388..0000000
--- a/vim/ftplugin/latex-suite/packages/csquotes
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/csquotes \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/deleq b/vim/ftplugin/latex-suite/packages/deleq
deleted file mode 120000
index 0cb7f16..0000000
--- a/vim/ftplugin/latex-suite/packages/deleq
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/deleq \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/drftcite b/vim/ftplugin/latex-suite/packages/drftcite
deleted file mode 120000
index 7bcd15e..0000000
--- a/vim/ftplugin/latex-suite/packages/drftcite
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/drftcite \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/dropping b/vim/ftplugin/latex-suite/packages/dropping
deleted file mode 120000
index 001c600..0000000
--- a/vim/ftplugin/latex-suite/packages/dropping
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/dropping \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/enumerate b/vim/ftplugin/latex-suite/packages/enumerate
deleted file mode 120000
index 59c1cbe..0000000
--- a/vim/ftplugin/latex-suite/packages/enumerate
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/enumerate \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/eqlist b/vim/ftplugin/latex-suite/packages/eqlist
deleted file mode 120000
index b2b3c7d..0000000
--- a/vim/ftplugin/latex-suite/packages/eqlist
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/eqlist \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/eqparbox b/vim/ftplugin/latex-suite/packages/eqparbox
deleted file mode 120000
index 9de66ef..0000000
--- a/vim/ftplugin/latex-suite/packages/eqparbox
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/eqparbox \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/everyshi b/vim/ftplugin/latex-suite/packages/everyshi
deleted file mode 120000
index 6c746a3..0000000
--- a/vim/ftplugin/latex-suite/packages/everyshi
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/everyshi \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/exmpl b/vim/ftplugin/latex-suite/packages/exmpl
deleted file mode 120000
index 6d62c72..0000000
--- a/vim/ftplugin/latex-suite/packages/exmpl
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/exmpl \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/fixme b/vim/ftplugin/latex-suite/packages/fixme
deleted file mode 120000
index 9b7fc0b..0000000
--- a/vim/ftplugin/latex-suite/packages/fixme
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/fixme \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/flafter b/vim/ftplugin/latex-suite/packages/flafter
deleted file mode 120000
index f0ca5d3..0000000
--- a/vim/ftplugin/latex-suite/packages/flafter
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/flafter \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/float b/vim/ftplugin/latex-suite/packages/float
deleted file mode 120000
index 88947fc..0000000
--- a/vim/ftplugin/latex-suite/packages/float
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/float \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/floatflt b/vim/ftplugin/latex-suite/packages/floatflt
deleted file mode 120000
index 54c8545..0000000
--- a/vim/ftplugin/latex-suite/packages/floatflt
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/floatflt \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/fn2end b/vim/ftplugin/latex-suite/packages/fn2end
deleted file mode 120000
index 0409cf5..0000000
--- a/vim/ftplugin/latex-suite/packages/fn2end
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/fn2end \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/footmisc b/vim/ftplugin/latex-suite/packages/footmisc
deleted file mode 120000
index e0f7040..0000000
--- a/vim/ftplugin/latex-suite/packages/footmisc
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/footmisc \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/geometry b/vim/ftplugin/latex-suite/packages/geometry
deleted file mode 120000
index 9eae177..0000000
--- a/vim/ftplugin/latex-suite/packages/geometry
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/geometry \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/german b/vim/ftplugin/latex-suite/packages/german
deleted file mode 120000
index 7255a9d..0000000
--- a/vim/ftplugin/latex-suite/packages/german
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/german \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/graphicx b/vim/ftplugin/latex-suite/packages/graphicx
deleted file mode 120000
index 1a9509e..0000000
--- a/vim/ftplugin/latex-suite/packages/graphicx
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/graphicx \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/graphpap b/vim/ftplugin/latex-suite/packages/graphpap
deleted file mode 120000
index d2ea7da..0000000
--- a/vim/ftplugin/latex-suite/packages/graphpap
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/graphpap \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/harpoon b/vim/ftplugin/latex-suite/packages/harpoon
deleted file mode 120000
index b2de7e5..0000000
--- a/vim/ftplugin/latex-suite/packages/harpoon
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/harpoon \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/hhline b/vim/ftplugin/latex-suite/packages/hhline
deleted file mode 120000
index e184977..0000000
--- a/vim/ftplugin/latex-suite/packages/hhline
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/hhline \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/histogram b/vim/ftplugin/latex-suite/packages/histogram
deleted file mode 120000
index 5075eef..0000000
--- a/vim/ftplugin/latex-suite/packages/histogram
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/histogram \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/hyperref b/vim/ftplugin/latex-suite/packages/hyperref
deleted file mode 120000
index 4f15513..0000000
--- a/vim/ftplugin/latex-suite/packages/hyperref
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/hyperref \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/ifthen b/vim/ftplugin/latex-suite/packages/ifthen
deleted file mode 120000
index 78ab498..0000000
--- a/vim/ftplugin/latex-suite/packages/ifthen
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/ifthen \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/inputenc b/vim/ftplugin/latex-suite/packages/inputenc
deleted file mode 120000
index 06df3af..0000000
--- a/vim/ftplugin/latex-suite/packages/inputenc
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/inputenc \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/letterspace b/vim/ftplugin/latex-suite/packages/letterspace
deleted file mode 120000
index 9b1a052..0000000
--- a/vim/ftplugin/latex-suite/packages/letterspace
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/letterspace \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/lineno b/vim/ftplugin/latex-suite/packages/lineno
deleted file mode 120000
index 8ff57e8..0000000
--- a/vim/ftplugin/latex-suite/packages/lineno
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/lineno \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/longtable b/vim/ftplugin/latex-suite/packages/longtable
deleted file mode 120000
index 449046c..0000000
--- a/vim/ftplugin/latex-suite/packages/longtable
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/longtable \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/lscape b/vim/ftplugin/latex-suite/packages/lscape
deleted file mode 120000
index 338090c..0000000
--- a/vim/ftplugin/latex-suite/packages/lscape
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/lscape \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/manyfoot b/vim/ftplugin/latex-suite/packages/manyfoot
deleted file mode 120000
index 447a81d..0000000
--- a/vim/ftplugin/latex-suite/packages/manyfoot
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/manyfoot \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/moreverb b/vim/ftplugin/latex-suite/packages/moreverb
deleted file mode 120000
index f53e42a..0000000
--- a/vim/ftplugin/latex-suite/packages/moreverb
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/moreverb \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/multibox b/vim/ftplugin/latex-suite/packages/multibox
deleted file mode 120000
index 13eab07..0000000
--- a/vim/ftplugin/latex-suite/packages/multibox
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/multibox \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/multicol b/vim/ftplugin/latex-suite/packages/multicol
deleted file mode 120000
index dffcd66..0000000
--- a/vim/ftplugin/latex-suite/packages/multicol
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/multicol \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/newalg b/vim/ftplugin/latex-suite/packages/newalg
deleted file mode 120000
index eff77ed..0000000
--- a/vim/ftplugin/latex-suite/packages/newalg
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/newalg \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/ngerman b/vim/ftplugin/latex-suite/packages/ngerman
deleted file mode 120000
index 45ee1ed..0000000
--- a/vim/ftplugin/latex-suite/packages/ngerman
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/ngerman \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/numprint b/vim/ftplugin/latex-suite/packages/numprint
deleted file mode 120000
index 39b222f..0000000
--- a/vim/ftplugin/latex-suite/packages/numprint
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/numprint \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/oldstyle b/vim/ftplugin/latex-suite/packages/oldstyle
deleted file mode 120000
index adee066..0000000
--- a/vim/ftplugin/latex-suite/packages/oldstyle
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/oldstyle \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/outliner b/vim/ftplugin/latex-suite/packages/outliner
deleted file mode 120000
index 6091b28..0000000
--- a/vim/ftplugin/latex-suite/packages/outliner
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/outliner \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/overcite b/vim/ftplugin/latex-suite/packages/overcite
deleted file mode 120000
index 6598d04..0000000
--- a/vim/ftplugin/latex-suite/packages/overcite
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/overcite \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/pagenote b/vim/ftplugin/latex-suite/packages/pagenote
deleted file mode 120000
index e1650d3..0000000
--- a/vim/ftplugin/latex-suite/packages/pagenote
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/pagenote \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/parallel b/vim/ftplugin/latex-suite/packages/parallel
deleted file mode 120000
index 311e7cd..0000000
--- a/vim/ftplugin/latex-suite/packages/parallel
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/parallel \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/plain b/vim/ftplugin/latex-suite/packages/plain
deleted file mode 120000
index 4184d23..0000000
--- a/vim/ftplugin/latex-suite/packages/plain
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/plain \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/plates b/vim/ftplugin/latex-suite/packages/plates
deleted file mode 120000
index e8fd326..0000000
--- a/vim/ftplugin/latex-suite/packages/plates
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/plates \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/polski b/vim/ftplugin/latex-suite/packages/polski
deleted file mode 120000
index 448a8f1..0000000
--- a/vim/ftplugin/latex-suite/packages/polski
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/polski \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/psgo b/vim/ftplugin/latex-suite/packages/psgo
deleted file mode 120000
index 2cede17..0000000
--- a/vim/ftplugin/latex-suite/packages/psgo
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/psgo \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/schedule b/vim/ftplugin/latex-suite/packages/schedule
deleted file mode 120000
index 61c1db1..0000000
--- a/vim/ftplugin/latex-suite/packages/schedule
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/schedule \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/textfit b/vim/ftplugin/latex-suite/packages/textfit
deleted file mode 120000
index 1d12972..0000000
--- a/vim/ftplugin/latex-suite/packages/textfit
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/textfit \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/times b/vim/ftplugin/latex-suite/packages/times
deleted file mode 120000
index 4cbed6c..0000000
--- a/vim/ftplugin/latex-suite/packages/times
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/times \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/tipa b/vim/ftplugin/latex-suite/packages/tipa
deleted file mode 120000
index 8bf48c9..0000000
--- a/vim/ftplugin/latex-suite/packages/tipa
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/tipa \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/ulem b/vim/ftplugin/latex-suite/packages/ulem
deleted file mode 120000
index 4c343de..0000000
--- a/vim/ftplugin/latex-suite/packages/ulem
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/ulem \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/url b/vim/ftplugin/latex-suite/packages/url
deleted file mode 120000
index f4b73c1..0000000
--- a/vim/ftplugin/latex-suite/packages/url
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/url \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/verbatim b/vim/ftplugin/latex-suite/packages/verbatim
deleted file mode 120000
index a1abb9e..0000000
--- a/vim/ftplugin/latex-suite/packages/verbatim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/verbatim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/packages/version b/vim/ftplugin/latex-suite/packages/version
deleted file mode 120000
index 8c53044..0000000
--- a/vim/ftplugin/latex-suite/packages/version
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/packages/version \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/projecttemplate.vim b/vim/ftplugin/latex-suite/projecttemplate.vim
deleted file mode 120000
index fdb6b82..0000000
--- a/vim/ftplugin/latex-suite/projecttemplate.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/projecttemplate.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/pytools.py b/vim/ftplugin/latex-suite/pytools.py
deleted file mode 120000
index 5c3d8d8..0000000
--- a/vim/ftplugin/latex-suite/pytools.py
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/pytools.py \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/smartspace.vim b/vim/ftplugin/latex-suite/smartspace.vim
deleted file mode 120000
index a772f3e..0000000
--- a/vim/ftplugin/latex-suite/smartspace.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/smartspace.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/templates.vim b/vim/ftplugin/latex-suite/templates.vim
deleted file mode 120000
index 8dcadde..0000000
--- a/vim/ftplugin/latex-suite/templates.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/templates.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/templates/IEEEtran.tex b/vim/ftplugin/latex-suite/templates/IEEEtran.tex
deleted file mode 120000
index 459ad65..0000000
--- a/vim/ftplugin/latex-suite/templates/IEEEtran.tex
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/templates/IEEEtran.tex \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/templates/article.tex b/vim/ftplugin/latex-suite/templates/article.tex
deleted file mode 120000
index adc3398..0000000
--- a/vim/ftplugin/latex-suite/templates/article.tex
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/templates/article.tex \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/templates/report.tex b/vim/ftplugin/latex-suite/templates/report.tex
deleted file mode 120000
index 980639e..0000000
--- a/vim/ftplugin/latex-suite/templates/report.tex
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/templates/report.tex \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/templates/report_two_column.tex b/vim/ftplugin/latex-suite/templates/report_two_column.tex
deleted file mode 120000
index e95ddfb..0000000
--- a/vim/ftplugin/latex-suite/templates/report_two_column.tex
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/templates/report_two_column.tex \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/texmenuconf.vim b/vim/ftplugin/latex-suite/texmenuconf.vim
deleted file mode 120000
index 337c158..0000000
--- a/vim/ftplugin/latex-suite/texmenuconf.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/texmenuconf.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/texproject.vim b/vim/ftplugin/latex-suite/texproject.vim
deleted file mode 120000
index 9254715..0000000
--- a/vim/ftplugin/latex-suite/texproject.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/texproject.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/texrc b/vim/ftplugin/latex-suite/texrc
deleted file mode 120000
index ebf927b..0000000
--- a/vim/ftplugin/latex-suite/texrc
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/texrc \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/texviewer.vim b/vim/ftplugin/latex-suite/texviewer.vim
deleted file mode 120000
index e7c2963..0000000
--- a/vim/ftplugin/latex-suite/texviewer.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/texviewer.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/version.vim b/vim/ftplugin/latex-suite/version.vim
deleted file mode 120000
index 53adfe7..0000000
--- a/vim/ftplugin/latex-suite/version.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/version.vim \ No newline at end of file
diff --git a/vim/ftplugin/latex-suite/wizardfuncs.vim b/vim/ftplugin/latex-suite/wizardfuncs.vim
deleted file mode 120000
index f32b74a..0000000
--- a/vim/ftplugin/latex-suite/wizardfuncs.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/latex-suite/wizardfuncs.vim \ No newline at end of file
diff --git a/vim/ftplugin/tex_latexSuite.vim b/vim/ftplugin/tex_latexSuite.vim
deleted file mode 120000
index e0a3109..0000000
--- a/vim/ftplugin/tex_latexSuite.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/ftplugin/tex_latexSuite.vim \ No newline at end of file
diff --git a/vim/indent/tex.vim b/vim/indent/tex.vim
deleted file mode 120000
index 551e3a9..0000000
--- a/vim/indent/tex.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/indent/tex.vim \ No newline at end of file
diff --git a/vim/plugin/DrawItPlugin.vim b/vim/plugin/DrawItPlugin.vim
deleted file mode 100644
index 84333ce..0000000
--- a/vim/plugin/DrawItPlugin.vim
+++ /dev/null
@@ -1,76 +0,0 @@
-" 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 28, 2012
-" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{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
-"
-" (Zeph 3:1,2 WEB) Woe to her who is rebellious and polluted, the {{{1
-" oppressing 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.
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if &cp || exists("g:loaded_DrawItPlugin")
- finish
-endif
-let g:loaded_DrawItPlugin = "v13"
-let s:keepcpo = &cpo
-set cpo&vim
-
-" ---------------------------------------------------------------------
-" Public Interface: {{{1
-" commands:
-com! -nargs=0 -bang DrawIt set lz|if <bang>0|call DrawIt#DrawItStop()|else|call DrawIt#DrawItStart()|endif|set nolz
-com! -nargs=? DIstart set lz|call DrawIt#DrawItStart(<q-args>)|set nolz
-com! -nargs=0 DIstop set lz|call DrawIt#DrawItStop()|set nolz
-
-" commands: available only when not pre-defined
-sil! com -nargs=0 DInrml call DrawIt#SetMode('N')
-sil! com -nargs=0 DIsngl call DrawIt#SetMode('S')
-sil! com -nargs=0 DIdbl call DrawIt#SetMode('D')
-
-" maps: users may override these maps by defining their own mappings in their .vimrc
-" to <Plug>DrawItStart and/or <Plug>DrawItStop. By default:
-" \di : start DrawIt
-" \ds : stop DrawIt
-if !hasmapto('<Plug>DrawItStart')
- map <unique> <Leader>di <Plug>DrawItStart
-endif
-noremap <silent> <Plug>DrawItStart :set lz<cr>:call DrawIt#DrawItStart()<cr>:set nolz<cr>
-if !hasmapto('<Plug>DrawItStop')
- map <unique> <Leader>ds <Plug>DrawItStop
-endif
-noremap <silent> <Plug>DrawItStop :set lz<cr>:call DrawIt#DrawItStop()<cr>:set nolz<cr>
-
-" ---------------------------------------------------------------------
-" 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
-
-" ---------------------------------------------------------------------
-" Cleanup And Modelines:
-" vim: fdm=marker
-let &cpo= s:keepcpo
-unlet s:keepcpo
diff --git a/vim/plugin/SyntaxFolds.vim b/vim/plugin/SyntaxFolds.vim
deleted file mode 120000
index 6368bba..0000000
--- a/vim/plugin/SyntaxFolds.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/plugin/SyntaxFolds.vim \ No newline at end of file
diff --git a/vim/plugin/cecutil.vim b/vim/plugin/cecutil.vim
deleted file mode 100644
index b720044..0000000
--- a/vim/plugin/cecutil.vim
+++ /dev/null
@@ -1,536 +0,0 @@
-" cecutil.vim : save/restore window position
-" save/restore mark position
-" save/restore selected user maps
-" Author: Charles E. Campbell
-" Version: 18i NOT RELEASED
-" Date: Oct 21, 2013
-"
-" 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
-"
-" Saving And Restoring User Maps: {{{1
-" call SaveUserMaps(mapmode,maplead,mapchx,suffix)
-" call RestoreUserMaps(suffix)
-"
-" 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)
-"redraw!|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if &cp || exists("g:loaded_cecutil")
- finish
-endif
-let g:loaded_cecutil = "v18h"
-let s:keepcpo = &cpo
-set cpo&vim
-"DechoRemOn
-
-" =======================
-" 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=? RWP call RestoreWinPosn(<args>)
-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>)
-
-com! -bar -nargs=1 WLR call s:WinLineRestore(<q-args>)
-
-if v:version < 630
- let s:modifier= "sil! "
-else
- let s:modifier= "sil! keepj "
-endif
-
-" ===============
-" Functions: {{{1
-" ===============
-
-" ---------------------------------------------------------------------
-" SaveWinPosn: {{{2
-" 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(...)
-" echomsg "Decho: SaveWinPosn() a:0=".a:0
- if line("$") == 1 && getline(1) == ""
-" echomsg "Decho: SaveWinPosn : empty buffer"
- return ""
- endif
- let so_keep = &l:so
- let siso_keep = &siso
- let ss_keep = &l:ss
- setlocal so=0 siso=0 ss=0
-
- let swline = line(".") " save-window line in file
- let swcol = col(".") " save-window column in file
- if swcol >= col("$")
- let swcol= swcol + virtcol(".") - virtcol("$") " adjust for virtual edit (cursor past end-of-line)
- endif
- let swwline = winline() - 1 " save-window window line
- let swwcol = virtcol(".") - wincol() " save-window window column
- let savedposn = ""
-" echomsg "Decho: sw[".swline.",".swcol."] sww[".swwline.",".swwcol."]"
- let savedposn = "call GoWinbufnr(".winbufnr(0).")"
- let savedposn = savedposn."|".s:modifier.swline
- let savedposn = savedposn."|".s:modifier."norm! 0z\<cr>"
- if swwline > 0
- let savedposn= savedposn.":".s:modifier."call s:WinLineRestore(".(swwline+1).")\<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
-" echomsg "Decho: saving posn to SWP stack"
- let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn
- endif
-
- let &l:so = so_keep
- let &siso = siso_keep
- let &l:ss = ss_keep
-
-" if exists("b:cecutil_iwinposn") " Decho
-" echomsg "Decho: b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]"
-" else " Decho
-" echomsg "Decho: b:cecutil_iwinposn doesn't exist"
-" endif " Decho
-" echomsg "Decho: SaveWinPosn [".savedposn."]"
- return savedposn
-endfun
-
-" ---------------------------------------------------------------------
-" RestoreWinPosn: {{{2
-" call RestoreWinPosn()
-" call RestoreWinPosn(winposn)
-fun! RestoreWinPosn(...)
-" echomsg "Decho: RestoreWinPosn() a:0=".a:0
-" echomsg "Decho: getline(1)<".getline(1).">"
-" echomsg "Decho: line(.)=".line(".")
- if line("$") == 1 && getline(1) == ""
-" echomsg "Decho: RestoreWinPosn : empty buffer"
- return ""
- endif
- let so_keep = &l:so
- let siso_keep = &l:siso
- let ss_keep = &l:ss
- setlocal 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}")
-" echomsg "Decho: using stack b:cecutil_winposn{".b:cecutil_iwinposn."}<".b:cecutil_winposn{b:cecutil_iwinposn}.">"
- try
- exe s:modifier.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
-" echomsg "Decho: using input a:1<".a:1.">"
- " use window position passed to this function
- exe 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. The following fixes that.
- " Note: was using wincol()>1, but with signs, a cursor
- " at column 1 yields wincol()==3. Beeping ensued.
- let vekeep= &ve
- set ve=all
- if virtcol('.') > 1
- exe s:modifier."norm! hl"
- elseif virtcol(".") < virtcol("$")
- exe s:modifier."norm! lh"
- endif
- let &ve= vekeep
-
- let &l:so = so_keep
- let &l:siso = siso_keep
- let &l:ss = ss_keep
-
-" echomsg "Decho: RestoreWinPosn"
-endfun
-
-" ---------------------------------------------------------------------
-" s:WinLineRestore: {{{2
-fun! s:WinLineRestore(swwline)
-" echomsg "Decho: s:WinLineRestore(swwline=".a:swwline.")"
- while winline() < a:swwline
- let curwinline= winline()
- exe s:modifier."norm! \<c-y>"
- if curwinline == winline()
- break
- endif
- endwhile
-" echomsg "Decho: s:WinLineRestore"
-endfun
-
-" ---------------------------------------------------------------------
-" GoWinbufnr: go to window holding given buffer (by number) {{{2
-" 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. {{{2
-" 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: {{{2
-" 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: {{{2
-" 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
-
-" ---------------------------------------------------------------------
-" QArgSplitter: to avoid \ processing by <f-args>, <q-args> is needed. {{{2
-" However, <q-args> doesn't split at all, so this one returns a list
-" with splits at all whitespace (only!), plus a leading length-of-list.
-" The resulting list: qarglist[0] corresponds to a:0
-" qarglist[i] corresponds to a:{i}
-fun! QArgSplitter(qarg)
-" call Dfunc("QArgSplitter(qarg<".a:qarg.">)")
- let qarglist = split(a:qarg)
- let qarglistlen = len(qarglist)
- let qarglist = insert(qarglist,qarglistlen)
-" call Dret("QArgSplitter ".string(qarglist))
- return qarglist
-endfun
-
-" ---------------------------------------------------------------------
-" ListWinPosn: {{{2
-"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) {{{2
-" which can be used to restore user maps later with
-" call RestoreUserMaps()
-"
-" mapmode - see :help maparg for details (n v o i c l "")
-" ex. "n" = Normal
-" The letters "b" and "u" are optional prefixes;
-" The "u" means that the map will also be unmapped
-" The "b" means that the map has a <buffer> qualifier
-" ex. "un" = Normal + unmapping
-" ex. "bn" = Normal + <buffer>
-" ex. "bun" = Normal + <buffer> + unmapping
-" ex. "ubn" = Normal + <buffer> + unmapping
-" maplead - see mapchx
-" 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 user 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
- let mapmode = a:mapmode
- let dounmap = 0
- let dobuffer = ""
- while mapmode =~ '^[bu]'
- if mapmode =~ '^u'
- let dounmap = 1
- let mapmode = strpart(a:mapmode,1)
- elseif mapmode =~ '^b'
- let dobuffer = "<buffer> "
- let mapmode = strpart(a:mapmode,1)
- endif
- endwhile
-" call Decho("dounmap=".dounmap." dobuffer<".dobuffer.">")
-
- " save single map :...something...
- if strpart(a:mapchx,0,1) == ':'
-" call Decho("save single map :...something...")
- let amap= strpart(a:mapchx,1)
- if amap == "|" || amap == "\<c-v>"
- let amap= "\<c-v>".amap
- endif
- let amap = a:maplead.amap
- let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:sil! ".mapmode."unmap ".dobuffer.amap
- if maparg(amap,mapmode) != ""
- let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
- let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:".mapmode."map ".dobuffer.amap." ".maprhs
- endif
- if dounmap
- exe "sil! ".mapmode."unmap ".dobuffer.amap
- endif
-
- " save single map <something>
- elseif strpart(a:mapchx,0,1) == '<'
-" call Decho("save single map <something>")
- let amap = a:mapchx
- if amap == "|" || amap == "\<c-v>"
- let amap= "\<c-v>".amap
-" call Decho("amap[[".amap."]]")
- endif
- let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|sil! ".mapmode."unmap ".dobuffer.amap
- if maparg(a:mapchx,mapmode) != ""
- let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
- let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".dobuffer.amap." ".maprhs
- endif
- if dounmap
- exe "sil! ".mapmode."unmap ".dobuffer.amap
- endif
-
- " save multiple maps
- else
-" call Decho("save multiple maps")
- 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}."|sil! ".mapmode."unmap ".dobuffer.amap
- if maparg(amap,mapmode) != ""
- let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
- let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".dobuffer.amap." ".maprhs
- endif
- if dounmap
- exe "sil! ".mapmode."unmap ".dobuffer.amap
- endif
- let i= i + 1
- endwhile
- endif
-" call Dret("SaveUserMaps : restoremap_".a:suffix.": ".s:restoremap_{a:suffix})
-endfun
-
-" ---------------------------------------------------------------------
-" RestoreUserMaps: {{{2
-" 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 "sil! ".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
diff --git a/vim/plugin/filebrowser.vim b/vim/plugin/filebrowser.vim
deleted file mode 120000
index de8cea6..0000000
--- a/vim/plugin/filebrowser.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/plugin/filebrowser.vim \ No newline at end of file
diff --git a/vim/plugin/imaps.vim b/vim/plugin/imaps.vim
deleted file mode 120000
index 078bfb9..0000000
--- a/vim/plugin/imaps.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/plugin/imaps.vim \ No newline at end of file
diff --git a/vim/plugin/libList.vim b/vim/plugin/libList.vim
deleted file mode 120000
index b9192da..0000000
--- a/vim/plugin/libList.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/plugin/libList.vim \ No newline at end of file
diff --git a/vim/plugin/remoteOpen.vim b/vim/plugin/remoteOpen.vim
deleted file mode 120000
index 3a06168..0000000
--- a/vim/plugin/remoteOpen.vim
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/vim/addons/plugin/remoteOpen.vim \ No newline at end of file
diff --git a/vim/plugin/surround.vim b/vim/plugin/surround.vim
deleted file mode 100644
index 05b1c5c..0000000
--- a/vim/plugin/surround.vim
+++ /dev/null
@@ -1,588 +0,0 @@
-" surround.vim - Surroundings
-" Author: Tim Pope <http://tpo.pe/>
-" Version: 2.0
-" GetLatestVimScripts: 1697 1 :AutoInstall: surround.vim
-
-if exists("g:loaded_surround") || &cp || v:version < 700
- finish
-endif
-let g:loaded_surround = 1
-
-" Input functions {{{1
-
-function! s:getchar()
- let c = getchar()
- if c =~ '^\d\+$'
- let c = nr2char(c)
- endif
- return c
-endfunction
-
-function! s:inputtarget()
- let c = s:getchar()
- while c =~ '^\d\+$'
- let c .= s:getchar()
- endwhile
- if c == " "
- let c .= s:getchar()
- endif
- if c =~ "\<Esc>\|\<C-C>\|\0"
- return ""
- else
- return c
- endif
-endfunction
-
-function! s:inputreplacement()
- let c = s:getchar()
- if c == " "
- let c .= s:getchar()
- endif
- if c =~ "\<Esc>" || c =~ "\<C-C>"
- return ""
- else
- return c
- endif
-endfunction
-
-function! s:beep()
- exe "norm! \<Esc>"
- return ""
-endfunction
-
-function! s:redraw()
- redraw
- return ""
-endfunction
-
-" }}}1
-
-" Wrapping functions {{{1
-
-function! s:extractbefore(str)
- if a:str =~ '\r'
- return matchstr(a:str,'.*\ze\r')
- else
- return matchstr(a:str,'.*\ze\n')
- endif
-endfunction
-
-function! s:extractafter(str)
- if a:str =~ '\r'
- return matchstr(a:str,'\r\zs.*')
- else
- return matchstr(a:str,'\n\zs.*')
- endif
-endfunction
-
-function! s:fixindent(str,spc)
- let str = substitute(a:str,'\t',repeat(' ',&sw),'g')
- let spc = substitute(a:spc,'\t',repeat(' ',&sw),'g')
- let str = substitute(str,'\(\n\|\%^\).\@=','\1'.spc,'g')
- if ! &et
- let str = substitute(str,'\s\{'.&ts.'\}',"\t",'g')
- endif
- return str
-endfunction
-
-function! s:process(string)
- let i = 0
- for i in range(7)
- let repl_{i} = ''
- let m = matchstr(a:string,nr2char(i).'.\{-\}\ze'.nr2char(i))
- if m != ''
- let m = substitute(strpart(m,1),'\r.*','','')
- let repl_{i} = input(substitute(m,':\s*$','','').': ')
- endif
- endfor
- let s = ""
- let i = 0
- while i < strlen(a:string)
- let char = strpart(a:string,i,1)
- if char2nr(char) < 8
- let next = stridx(a:string,char,i+1)
- if next == -1
- let s .= char
- else
- let insertion = repl_{char2nr(char)}
- let subs = strpart(a:string,i+1,next-i-1)
- let subs = matchstr(subs,'\r.*')
- while subs =~ '^\r.*\r'
- let sub = matchstr(subs,"^\r\\zs[^\r]*\r[^\r]*")
- let subs = strpart(subs,strlen(sub)+1)
- let r = stridx(sub,"\r")
- let insertion = substitute(insertion,strpart(sub,0,r),strpart(sub,r+1),'')
- endwhile
- let s .= insertion
- let i = next
- endif
- else
- let s .= char
- endif
- let i += 1
- endwhile
- return s
-endfunction
-
-function! s:wrap(string,char,type,...)
- let keeper = a:string
- let newchar = a:char
- let s:tag = ""
- let type = a:type
- let linemode = type ==# 'V' ? 1 : 0
- let special = a:0 ? a:1 : 0
- let before = ""
- let after = ""
- if type ==# "V"
- let initspaces = matchstr(keeper,'\%^\s*')
- else
- let initspaces = matchstr(getline('.'),'\%^\s*')
- endif
- let pairs = "b()B{}r[]a<>"
- let extraspace = ""
- if newchar =~ '^ '
- let newchar = strpart(newchar,1)
- let extraspace = ' '
- endif
- let idx = stridx(pairs,newchar)
- if newchar == ' '
- let before = ''
- let after = ''
- elseif exists("b:surround_".char2nr(newchar))
- let all = s:process(b:surround_{char2nr(newchar)})
- let before = s:extractbefore(all)
- let after = s:extractafter(all)
- elseif exists("g:surround_".char2nr(newchar))
- let all = s:process(g:surround_{char2nr(newchar)})
- let before = s:extractbefore(all)
- let after = s:extractafter(all)
- elseif newchar ==# "p"
- let before = "\n"
- let after = "\n\n"
- elseif newchar ==# 's'
- let before = ' '
- let after = ''
- elseif newchar ==# ':'
- let before = ':'
- let after = ''
- elseif newchar =~# "[tT\<C-T><,]"
- let dounmapp = 0
- let dounmapb = 0
- if !maparg(">","c")
- let dounmapb = 1
- " Hide from AsNeeded
- exe "cn"."oremap > <CR>"
- endif
- let default = ""
- if newchar ==# "T"
- if !exists("s:lastdel")
- let s:lastdel = ""
- endif
- let default = matchstr(s:lastdel,'<\zs.\{-\}\ze>')
- endif
- let tag = input("<",default)
- echo "<".substitute(tag,'>*$','>','')
- if dounmapb
- silent! cunmap >
- endif
- let s:tag = tag
- if tag != ""
- let tag = substitute(tag,'>*$','','')
- let s:tag = tag . '>'
- let before = '<'.tag.'>'
- if tag =~ '/$'
- let after = ''
- else
- let after = '</'.substitute(tag,' .*','','').'>'
- endif
- if newchar == "\<C-T>" || newchar == ","
- if type ==# "v" || type ==# "V"
- let before .= "\n\t"
- endif
- if type ==# "v"
- let after = "\n". after
- endif
- endif
- endif
- elseif newchar ==# 'l' || newchar == '\'
- " LaTeX
- let env = input('\begin{')
- let env = '{' . env
- let env .= s:closematch(env)
- echo '\begin'.env
- if env != ""
- let before = '\begin'.env
- let after = '\end'.matchstr(env,'[^}]*').'}'
- endif
- elseif newchar ==# 'f' || newchar ==# 'F'
- let fnc = input('function: ')
- if fnc != ""
- let before = substitute(fnc,'($','','').'('
- let after = ')'
- if newchar ==# 'F'
- let before .= ' '
- let after = ' ' . after
- endif
- endif
- elseif newchar ==# "\<C-F>"
- let fnc = input('function: ')
- let before = '('.fnc.' '
- let after = ')'
- elseif idx >= 0
- let spc = (idx % 3) == 1 ? " " : ""
- let idx = idx / 3 * 3
- let before = strpart(pairs,idx+1,1) . spc
- let after = spc . strpart(pairs,idx+2,1)
- elseif newchar == "\<C-[>" || newchar == "\<C-]>"
- let before = "{\n\t"
- let after = "\n}"
- elseif newchar !~ '\a'
- let before = newchar
- let after = newchar
- else
- let before = ''
- let after = ''
- endif
- let after = substitute(after ,'\n','\n'.initspaces,'g')
- if type ==# 'V' || (special && type ==# "v")
- let before = substitute(before,' \+$','','')
- let after = substitute(after ,'^ \+','','')
- if after !~ '^\n'
- let after = initspaces.after
- endif
- if keeper !~ '\n$' && after !~ '^\n'
- let keeper .= "\n"
- elseif keeper =~ '\n$' && after =~ '^\n'
- let after = strpart(after,1)
- endif
- if before !~ '\n\s*$'
- let before .= "\n"
- if special
- let before .= "\t"
- endif
- endif
- endif
- if type ==# 'V'
- let before = initspaces.before
- endif
- if before =~ '\n\s*\%$'
- if type ==# 'v'
- let keeper = initspaces.keeper
- endif
- let padding = matchstr(before,'\n\zs\s\+\%$')
- let before = substitute(before,'\n\s\+\%$','\n','')
- let keeper = s:fixindent(keeper,padding)
- endif
- if type ==# 'V'
- let keeper = before.keeper.after
- elseif type =~ "^\<C-V>"
- " Really we should be iterating over the buffer
- let repl = substitute(before,'[\\~]','\\&','g').'\1'.substitute(after,'[\\~]','\\&','g')
- let repl = substitute(repl,'\n',' ','g')
- let keeper = substitute(keeper."\n",'\(.\{-\}\)\(\n\)',repl.'\n','g')
- let keeper = substitute(keeper,'\n\%$','','')
- else
- let keeper = before.extraspace.keeper.extraspace.after
- endif
- return keeper
-endfunction
-
-function! s:wrapreg(reg,char,...)
- let orig = getreg(a:reg)
- let type = substitute(getregtype(a:reg),'\d\+$','','')
- let special = a:0 ? a:1 : 0
- let new = s:wrap(orig,a:char,type,special)
- call setreg(a:reg,new,type)
-endfunction
-" }}}1
-
-function! s:insert(...) " {{{1
- " Optional argument causes the result to appear on 3 lines, not 1
- let linemode = a:0 ? a:1 : 0
- let char = s:inputreplacement()
- while char == "\<CR>" || char == "\<C-S>"
- " TODO: use total count for additional blank lines
- let linemode += 1
- let char = s:inputreplacement()
- endwhile
- if char == ""
- return ""
- endif
- let cb_save = &clipboard
- set clipboard-=unnamed clipboard-=unnamedplus
- let reg_save = @@
- call setreg('"',"\r",'v')
- call s:wrapreg('"',char,linemode)
- " If line mode is used and the surrounding consists solely of a suffix,
- " remove the initial newline. This fits a use case of mine but is a
- " little inconsistent. Is there anyone that would prefer the simpler
- " behavior of just inserting the newline?
- if linemode && match(getreg('"'),'^\n\s*\zs.*') == 0
- call setreg('"',matchstr(getreg('"'),'^\n\s*\zs.*'),getregtype('"'))
- endif
- " This can be used to append a placeholder to the end
- if exists("g:surround_insert_tail")
- call setreg('"',g:surround_insert_tail,"a".getregtype('"'))
- endif
- if col('.') >= col('$')
- norm! ""p
- else
- norm! ""P
- endif
- if linemode
- call s:reindent()
- endif
- norm! `]
- call search('\r','bW')
- let @@ = reg_save
- let &clipboard = cb_save
- return "\<Del>"
-endfunction " }}}1
-
-function! s:reindent() " {{{1
- if exists("b:surround_indent") ? b:surround_indent : (!exists("g:surround_indent") || g:surround_indent)
- silent norm! '[=']
- endif
-endfunction " }}}1
-
-function! s:dosurround(...) " {{{1
- let scount = v:count1
- let char = (a:0 ? a:1 : s:inputtarget())
- let spc = ""
- if char =~ '^\d\+'
- let scount = scount * matchstr(char,'^\d\+')
- let char = substitute(char,'^\d\+','','')
- endif
- if char =~ '^ '
- let char = strpart(char,1)
- let spc = 1
- endif
- if char == 'a'
- let char = '>'
- endif
- if char == 'r'
- let char = ']'
- endif
- let newchar = ""
- if a:0 > 1
- let newchar = a:2
- if newchar == "\<Esc>" || newchar == "\<C-C>" || newchar == ""
- return s:beep()
- endif
- endif
- let cb_save = &clipboard
- set clipboard-=unnamed clipboard-=unnamedplus
- let append = ""
- let original = getreg('"')
- let otype = getregtype('"')
- call setreg('"',"")
- let strcount = (scount == 1 ? "" : scount)
- if char == '/'
- exe 'norm! '.strcount.'[/d'.strcount.']/'
- elseif char =~# '[[:punct:]]' && char !~# '[][(){}<>"''`]'
- exe 'norm! T'.char
- if getline('.')[col('.')-1] == char
- exe 'norm! l'
- endif
- exe 'norm! dt'.char
- else
- exe 'norm! d'.strcount.'i'.char
- endif
- let keeper = getreg('"')
- let okeeper = keeper " for reindent below
- if keeper == ""
- call setreg('"',original,otype)
- let &clipboard = cb_save
- return ""
- endif
- let oldline = getline('.')
- let oldlnum = line('.')
- if char ==# "p"
- call setreg('"','','V')
- elseif char ==# "s" || char ==# "w" || char ==# "W"
- " Do nothing
- call setreg('"','')
- elseif char =~ "[\"'`]"
- exe "norm! i \<Esc>d2i".char
- call setreg('"',substitute(getreg('"'),' ','',''))
- elseif char == '/'
- norm! "_x
- call setreg('"','/**/',"c")
- let keeper = substitute(substitute(keeper,'^/\*\s\=','',''),'\s\=\*$','','')
- elseif char =~# '[[:punct:]]' && char !~# '[][(){}<>]'
- exe 'norm! F'.char
- exe 'norm! df'.char
- else
- " One character backwards
- call search('.','bW')
- exe "norm! da".char
- endif
- let removed = getreg('"')
- let rem2 = substitute(removed,'\n.*','','')
- let oldhead = strpart(oldline,0,strlen(oldline)-strlen(rem2))
- let oldtail = strpart(oldline, strlen(oldline)-strlen(rem2))
- let regtype = getregtype('"')
- if char =~# '[\[({<T]' || spc
- let keeper = substitute(keeper,'^\s\+','','')
- let keeper = substitute(keeper,'\s\+$','','')
- endif
- if col("']") == col("$") && col('.') + 1 == col('$')
- if oldhead =~# '^\s*$' && a:0 < 2
- let keeper = substitute(keeper,'\%^\n'.oldhead.'\(\s*.\{-\}\)\n\s*\%$','\1','')
- endif
- let pcmd = "p"
- else
- let pcmd = "P"
- endif
- if line('.') + 1 < oldlnum && regtype ==# "V"
- let pcmd = "p"
- endif
- call setreg('"',keeper,regtype)
- if newchar != ""
- call s:wrapreg('"',newchar)
- endif
- silent exe 'norm! ""'.pcmd.'`['
- if removed =~ '\n' || okeeper =~ '\n' || getreg('"') =~ '\n'
- call s:reindent()
- endif
- if getline('.') =~ '^\s\+$' && keeper =~ '^\s*\n'
- silent norm! cc
- endif
- call setreg('"',original,otype)
- let s:lastdel = removed
- let &clipboard = cb_save
- if newchar == ""
- silent! call repeat#set("\<Plug>Dsurround".char,scount)
- else
- silent! call repeat#set("\<Plug>Csurround".char.newchar.s:tag,scount)
- endif
-endfunction " }}}1
-
-function! s:changesurround() " {{{1
- let a = s:inputtarget()
- if a == ""
- return s:beep()
- endif
- let b = s:inputreplacement()
- if b == ""
- return s:beep()
- endif
- call s:dosurround(a,b)
-endfunction " }}}1
-
-function! s:opfunc(type,...) " {{{1
- let char = s:inputreplacement()
- if char == ""
- return s:beep()
- endif
- let reg = '"'
- let sel_save = &selection
- let &selection = "inclusive"
- let cb_save = &clipboard
- set clipboard-=unnamed clipboard-=unnamedplus
- let reg_save = getreg(reg)
- let reg_type = getregtype(reg)
- let type = a:type
- if a:type == "char"
- silent exe 'norm! v`[o`]"'.reg.'y'
- let type = 'v'
- elseif a:type == "line"
- silent exe 'norm! `[V`]"'.reg.'y'
- let type = 'V'
- elseif a:type ==# "v" || a:type ==# "V" || a:type ==# "\<C-V>"
- let &selection = sel_save
- let ve = &virtualedit
- if !(a:0 && a:1)
- set virtualedit=
- endif
- silent exe 'norm! gv"'.reg.'y'
- let &virtualedit = ve
- elseif a:type =~ '^\d\+$'
- let type = 'v'
- silent exe 'norm! ^v'.a:type.'$h"'.reg.'y'
- if mode() ==# 'v'
- norm! v
- return s:beep()
- endif
- else
- let &selection = sel_save
- let &clipboard = cb_save
- return s:beep()
- endif
- let keeper = getreg(reg)
- if type ==# "v" && a:type !=# "v"
- let append = matchstr(keeper,'\_s\@<!\s*$')
- let keeper = substitute(keeper,'\_s\@<!\s*$','','')
- endif
- call setreg(reg,keeper,type)
- call s:wrapreg(reg,char,a:0 && a:1)
- if type ==# "v" && a:type !=# "v" && append != ""
- call setreg(reg,append,"ac")
- endif
- silent exe 'norm! gv'.(reg == '"' ? '' : '"' . reg).'p`['
- if type ==# 'V' || (getreg(reg) =~ '\n' && type ==# 'v')
- call s:reindent()
- endif
- call setreg(reg,reg_save,reg_type)
- let &selection = sel_save
- let &clipboard = cb_save
- if a:type =~ '^\d\+$'
- silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:tag,a:type)
- else
- silent! call repeat#set("\<Plug>SurroundRepeat".char.s:tag)
- endif
-endfunction
-
-function! s:opfunc2(arg)
- call s:opfunc(a:arg,1)
-endfunction " }}}1
-
-function! s:closematch(str) " {{{1
- " Close an open (, {, [, or < on the command line.
- let tail = matchstr(a:str,'.[^\[\](){}<>]*$')
- if tail =~ '^\[.\+'
- return "]"
- elseif tail =~ '^(.\+'
- return ")"
- elseif tail =~ '^{.\+'
- return "}"
- elseif tail =~ '^<.+'
- return ">"
- else
- return ""
- endif
-endfunction " }}}1
-
-nnoremap <silent> <Plug>SurroundRepeat .
-nnoremap <silent> <Plug>Dsurround :<C-U>call <SID>dosurround(<SID>inputtarget())<CR>
-nnoremap <silent> <Plug>Csurround :<C-U>call <SID>changesurround()<CR>
-nnoremap <silent> <Plug>Yssurround :<C-U>call <SID>opfunc(v:count1)<CR>
-nnoremap <silent> <Plug>YSsurround :<C-U>call <SID>opfunc2(v:count1)<CR>
-" <C-U> discards the numerical argument but there's not much we can do with it
-nnoremap <silent> <Plug>Ysurround :<C-U>set opfunc=<SID>opfunc<CR>g@
-nnoremap <silent> <Plug>YSurround :<C-U>set opfunc=<SID>opfunc2<CR>g@
-vnoremap <silent> <Plug>VSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR>
-vnoremap <silent> <Plug>VgSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1)<CR>
-inoremap <silent> <Plug>Isurround <C-R>=<SID>insert()<CR>
-inoremap <silent> <Plug>ISurround <C-R>=<SID>insert(1)<CR>
-
-if !exists("g:surround_no_mappings") || ! g:surround_no_mappings
- nmap ds <Plug>Dsurround
- nmap cs <Plug>Csurround
- nmap ys <Plug>Ysurround
- nmap yS <Plug>YSurround
- nmap yss <Plug>Yssurround
- nmap ySs <Plug>YSsurround
- nmap ySS <Plug>YSsurround
- xmap S <Plug>VSurround
- xmap gS <Plug>VgSurround
- if !exists("g:surround_no_insert_mappings") || ! g:surround_no_insert_mappings
- if !hasmapto("<Plug>Isurround","i") && "" == mapcheck("<C-S>","i")
- imap <C-S> <Plug>Isurround
- endif
- imap <C-G>s <Plug>Isurround
- imap <C-G>S <Plug>ISurround
- endif
-endif
-
-" vim:set ft=vim sw=2 sts=2 et: