diff -r 000000000000 -r 86954f5fc4d2 .vim/doc/DrawIt.txt --- /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. + Sylvain Viart + (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: || + || +-----------------------------------------------------------++ + || | move and draw left || + || | move and draw right, inserting lines/space as needed || + || | move and draw up, inserting lines/space as needed || + || | move and draw down, inserting lines/space as needed || + || | move left || + || | move right, inserting lines/space as needed || + || | move up, inserting lines/space as needed || + || | move down, inserting lines/space as needed || + || | 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) || + || | replace with a \, move down and right, and insert a \ || + || | replace with a /, move down and left, and insert a / || + || | replace with a /, move up and right, and insert a / || + || | 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 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 +() produced [161q, but vim didn't know that sequence was a . +I merely made a nmap: + + nmap [161q + +and vim thereafter recognized the command. + + +ERASING *drawit-erase* + + +The 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 +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 +> + +< + 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