.vim/doc/DrawIt.txt
changeset 0 86954f5fc4d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.vim/doc/DrawIt.txt	Tue May 29 08:41:42 2012 +0200
@@ -0,0 +1,323 @@
+*drawit.txt*	The DrawIt Tool				Apr 10, 2006
+
+Authors:  Charles E. Campbell, Jr.  <NdrchipO@ScampbellPfamily.AbizM>
+          Sylvain Viart             <molo@multimania.com>
+	  (remove NOSPAM from Campbell's email first)
+Copyright:    Copyright (C) 2004-2006 Charles E. Campbell, Jr. {{{1
+              Permission is hereby granted to use and distribute this code,
+              with or without modifications, provided that this copyright
+              notice is copied with it. Like anything else that's free,
+              DrawIt.vim is provided *as is* and comes with no warranty
+              of any kind, either expressed or implied. By using this
+              plugin, you agree that in no event will the copyright
+              holder be liable for any damages resulting from the use
+              of this software.
+
+
+==============================================================================
+1. Contents						*drawit-contents*
+
+	1. Contents......................: |drawit-contents|
+	2. DrawIt Manual.................: |drawit|
+	3. DrawIt Usage..................: |drawit-usage|
+	     Starting....................: |drawit-start|
+	     Stopping....................: |drawit-stopping|
+	     User Map Protection.........: |drawit-protect|
+	     Drawing.....................: |drawit-drawing|
+	     Changing Drawing Characters.: |drawit-setdrawit|
+	     Moving......................: |drawit-moving|
+	     Erasing.....................: |drawit-erase|
+	     Example.....................: |drawit-example|
+	     Visual Block Mode...........: |drawit-visblock|
+	     Brushes.....................: |drawit-brush|
+	     DrawIt Modes................: |drawit-modes|
+	4. DrawIt History................: |drawit-history|
+
+
+==============================================================================
+2. DrawIt Manual					*drawit*
+							*drawit-manual*
+ /=============+============================================================\
+ || Starting & |                                                           ||
+ || Stopping   | Explanation                                               ||
+ ++------------+-----------------------------------------------------------++
+ ||  \di       | start DrawIt                                              ||
+ ||  \ds       | stop  DrawIt                                              ||
+ ||  :DIstart  | start DrawIt                                              ||
+ ||  :DIstop   | stop  DrawIt                                              ||
+ ||            |                                                           ||
+ ++============+===========================================================++
+ ||   Maps     | Explanation                                               ||
+ ++------------+-----------------------------------------------------------++
+ ||            | The DrawIt routines use a replace, move, and              ||
+ ||            | replace/insert strategy.  The package also lets one insert||
+ ||            | spaces, draw arrows by using the following characters or  ||
+ ||            | keypad characters:                                        ||
+ ||            +-----------------------------------------------------------++
+ || <left>     | move and draw left                                        ||
+ || <right>    | move and draw right, inserting lines/space as needed      ||
+ || <up>       | move and draw up, inserting lines/space as needed         ||
+ || <down>     | move and draw down, inserting lines/space as needed       ||
+ || <s-left>   | move left                                                 ||
+ || <s-right>  | move right, inserting lines/space as needed               ||
+ || <s-up>     | move up, inserting lines/space as needed                  ||
+ || <s-down>   | move down, inserting lines/space as needed                ||
+ || <space>    | toggle into and out of erase mode                         ||
+ || >          | insert a > and move right    (draw -> arrow)              ||
+ || <          | insert a < and move left     (draw <- arrow)              ||
+ || ^          | insert a ^ and move up       (draw ^  arrow)              ||
+ || v          | insert a v and move down     (draw v  arrow)              ||
+ || <pgdn>     | replace with a \, move down and right, and insert a \     ||
+ || <end>      | replace with a /, move down and left,  and insert a /     ||
+ || <pgup>     | replace with a /, move up   and right, and insert a /     ||
+ || <home>     | replace with a \, move up   and left,  and insert a \     ||
+ || \>         | insert a fat > and move right    (draw -> arrow)          ||
+ || \<         | insert a fat < and move left     (draw <- arrow)          ||
+ || \^         | insert a fat ^ and move up       (draw ^  arrow)          ||
+ || \v         | insert a fat v and move down     (draw v  arrow)          ||
+ ||            |                                                           ||
+ ||============+===========================================================++
+ ||Visual Cmds | Explanation                                               ||
+ ||------------+-----------------------------------------------------------++
+ ||            | The drawing mode routines use visual-block mode to        ||
+ ||            | select endpoints for lines, arrows, and ellipses. Bresen- ||
+ ||            | ham and Bresenham-like algorithms are used for this.      ||
+ ||            |                                                           ||
+ ||            | These routines need a block of spaces, and so the "holer" ||
+ ||            | routine must first be used to create such a block.  The   ||
+ ||            | holer routine will query the user for the number of lines ||
+ ||            | to hold |'textwidth'| spaces.                             ||
+ ||            +-----------------------------------------------------------++
+ || \a         | draw arrow from corners of visual-block selected region   ||
+ || \b         | draw box on visual-block selected region                  ||
+ || \e         | draw an ellipse on visual-block selected region           ||
+ || \f         | flood figure with a character (you will be prompted)      ||
+ || \h         | the holer routine (will query user, see above)            ||
+ || \l         | draw line from corners of visual-block selected region    ||
+ || \s         | spacer: appends spaces up to the textwidth (default: 78)  ||
+ ||            |                                                           ||
+ ++============+===========================================================++
+ || Function and Explanation                                               ||
+ ++------------+-----------------------------------------------------------++
+ ||  :call SetDrawIt('vertical','horizontal','crossing','\','/','X')       ||
+ ||            set drawing characters for motions for moving               ||
+ ||  default   motion                                                      ||
+ ||  |         up/down,                                                    ||
+ ||  -         left/right,                                                 ||
+ ||  +         -| crossing,                                                ||
+ ||  \         downright,                                                  ||
+ ||  /         downleft, and                                               ||
+ ||  X         \/ crossing                                                 ||
+ ++=====================+==================================================++
+ ||  Commands           | Explanation                                      ||
+ ++---------------------+--------------------------------------------------++
+ ||  :SetBrush a-z      | sets brush (register) to given                   || 
+ ||  :'<,'>SetBrush a-z | yanks visual block to brush (register)           ||
+ \==========================================================================/
+
+
+==============================================================================
+3. DrawIt Usage						*drawit-usage*
+
+STARTING						*drawit-start*
+\di
+
+Typically one puts <drawit.vim> into the .vim/plugin directory
+(vimfiles\plugin for MS) where it becomes always available.  It uses a minimal
+interface (\di: you can think of it as *D*raw*I*t or *D*rawIt *I*nitialize) to
+start it and (\ds: *D*rawIt *S*top) to stop it.  Instead of using "\" you may
+specify your own preference for a map leader (see |mapleader|).
+
+A message, "[DrawIt]", will appear on the message line.
+
+
+STOPPING						*drawit-stopping*
+\ds
+
+When you are done with DrawIt, use \ds to stop DrawIt mode.  Stopping DrawIt
+will restore your usual options and remove the maps DrawIt set up.
+
+A message, "[DrawIt off]", will appear on the message line.
+
+
+USER MAP PROTECTION					*drawit-protect*
+
+Starting DrawIt causes it to set up a number of maps which facilitate
+drawing.  Just use the arrow keys or the keypad to cruise around your display.
+DrawIt will then leave appropriate lines as you move horizontally, vertically,
+or diagonally, and will transparently enlarge your file to accommodate your
+drawing as needed.  DrawIt saves both maps and user options and sets them to
+its own needs.  You may use h-j-k-l to move about your display and generally
+use editing commands as you wish even while in DrawIt mode.
+
+
+OPTIONS
+
+	g:drawit_insertmode : if this variable exists	*drawit-options*
+	                      and is 1 then maps are made
+			      which make cursor-control
+			      drawing available while in
+			      insert mode.
+
+DRAWING							*drawit-drawing*
+
+After DrawIt is started, just use the number pad to move the cursor about.  It
+will leave a trail of -s, |s, \s, /s (depending on which direction and
+SetDrawIt() changes), and +s and Xs where line crossing occurs.
+
+
+CHANGING DRAWING CHARACTERS				*drawit-setdrawit*
+
+The SetDrawIt() function is available for those who wish to change the
+characters that DrawIt uses. >
+
+    ex. :call SetDrawIt('*','*','*','*','*','*')
+    ex. :call SetDrawIt('-','|','-','\','/','/')
+<
+The first example shows how to change all the DrawIt drawing characters to
+asterisks, and the second shows how to give crossing priority to - and /.
+
+
+MOVING					*drawit-move* *drawit-moving*
+
+DrawIt supports shifting the arrow keys to cause motion of the cursor.  The
+motion of the cursor will not modify what's below the cursor.  The cursor
+will move and lines and/or spaces will be inserted to support the move as
+required.  Your terminal may not support shifted arrow keys, however, or Vim
+may not catch them as such.  For example, on the machine I use, shift-up
+(<s-up>) produced <Esc>[161q, but vim didn't know that sequence was a <s-up>.
+I merely made a nmap:
+
+	nmap <Esc>[161q	<s-up>
+
+and vim thereafter recognized the <s-up> command.
+
+
+ERASING							*drawit-erase*
+<space>
+
+The <space> key will toggle DrawIt's erase mode/DrawIt mode.  When in
+[DrawIt erase] mode, a message "[DrawIt erase]" will appear and the
+number pad will now cause spaces to be drawn instead of the usual drawing
+characters.  The drawing characters will be restored when the <space>
+key toggles DrawIt back to regular DrawIt mode.
+
+
+EXAMPLES						*drawit-example*
+
+Needless to say, the bottom spirals were done with DrawIt and some
+block editing with Vim: >
+
+   +------------ -----------+ +------------ -----------+ +------------
+   |+----------+ +---------+| |+----------+ +---------+| |+----------+
+   ||+--------+| |+-------+|| ||+--------+| |+-------+|| ||+--------+|
+   |||-------+|| ||+------||| |||-------+|| ||+------||| |||-------+||
+   ||+-------+|| ||+------+|| ||+-------+|| ||+------+|| ||+-------+||
+   |+---------+| |+--------+| |+---------+| |+--------+| |+---------+|
+   +-----------+ +----------+ +-----------+ +----------+ +-----------+
+
+VISUAL BLOCK MODE FOR ARROWS LINES BOXES AND ELLIPSES	*drawit-visblock*
+\a \b \e \h \l \s
+
+The DrawIt package has been merged with Sylvain Viart's drawing package
+which provides DrawIt with visual-block selection of starting/ending
+point drawing of arrows (\a), lines (\l), and boxes (\b).  Additionally
+I wrote an ellipse drawing function using visual block specification (\e).
+
+One must have a block of spaces for these maps which the "holer" routine
+(\h) will help create.  The holer routine will query the user for the number
+of lines s/he wishes to have, and will fill those lines with spaces out to the
+|'textwidth'| (or 78 spaces if that option hasn't been set).
+
+The Sylvain Viart functions and the ellipse drawing function depend
+upon using visual block mode.  Typical use: >
+
+	Example: * \h
+                   DrawIt asks: how many lines under the cursor? 10
+                   DrawIt then appends 10 lines filled with blanks
+                   out to textwidth (if defined) or 78 columns.
+                 * ctrl-v (move) \b
+                   DrawIt then draws a box
+<
+One first creates a number of blank-filled lines; the \h map (the "holer") is
+useful for this.  Select the first endpoint with ctrl-v and then move to the
+other endpoint.  One may then select \a for arrows, \b for boxes, \e for ellipses,
+or \l for lines.
+>
+        Examples:
+
+        __                _         ***************           +-------+
+          \_            _/      ****               ****       |       |
+            \_        _/      **      --------->       **     |       |
+              \_    _/          ****               ****       |       |
+                \__/   <-------     ***************           +-------+
+
+		\l        \a           \e and \a                  \b
+<
+							*drawit-setbrush*
+BRUSHES							*drawit-brush*
+>
+ :SetBrush a-z
+<
+	Set the current brush to the given letter (actually, its
+	a named register; see |quotea|).  Default brush: a
+>
+ :'<,'>SetBrush a-z
+<
+	Set the current brush to the given letter, and yank the visual
+	block to that named register (see |quotea|).  Default brush: a
+>
+ <shift-leftmouse>
+<
+	One may drag and draw with the current brush (default brush: a)
+	by holding down the shift key and the leftmouse button and moving
+	the mouse.  Blanks in the brush are considered to be transparent.
+>
+ \ra ... \rz
+<
+	Replace text with the given register.
+>
+ \pa ... \pz
+<
+	Like \ra ... \rz, except that blanks are considered to be transparent.
+
+DRAWIT MODES						*drawit-modes*
+
+  -[DrawIt]       regular DrawIt mode
+  -[DrawIt off]   DrawIt is off
+  -[DrawIt erase] DrawIt will erase using the number pad
+
+  g:DrChipTopLvlMenu: by default its "DrChip"; you may set this to whatever
+                  you like in your <.vimrc>.  This variable controls where
+		  DrawIt's menu items are placed.
+
+
+==============================================================================
+4. History						*drawit-history*
+
+	7 Feb 16, 2005 * now checks that "m" is in &go before attempting to
+	                 use menus
+	  Aug 17, 2005 * report option workaround
+	  Nov 01, 2005 * converted DrawIt to use autoload feature of vim 7.0
+	  Dec 28, 2005 * now uses cecutil to save/restore user maps
+	  Jan 18, 2006 * cecutil now updated to use keepjumps
+	  Jan 23, 2006 * :DIstart and :DIstop commands provided; thus users
+	                 using  "set noremap" can still use DrawIt.
+	  Jan 26, 2006 * DrawIt menu entry now keeps its place
+	  Apr 10, 2006 * Brushes were implemented
+	6 Feb 24, 2003 * The latest DrawIt now provides a fill function.
+			\f will ask for a character to fill the figure
+			surrounding the current cursor location.  Plus
+			I suggest reading :he drawit-tip for those whose
+			home/pageup/pagedown/end keys aren't all working
+			properly with DrawIt.
+	  08/18/03     : \p[a-z] and \r[a-z] implemented
+	  08/04/03     : b:..keep variables renamed to b:di_..keep variables
+	                 StopDrawIt() now insures that erase mode is off
+	  03/11/03     : included g:drawit_insertmode handling
+	  02/21/03     : included flood function
+	  12/11/02     : deletes trailing whitespace only if holer used
+	   8/27/02     : fat arrowheads included
+	               : shift-arrow keys move but don't modify
+
+vim:tw=78:ts=8:ft=help