*visincr.txt*	The Visual Incrementing Tool		Aug 16, 2011

Author:  Charles E. Campbell, Jr.  <NdrchipO@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email before using)
Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.	*visincr-copyright*
           The VIM LICENSE applies to visincr.vim and visincr.txt
           (see |copyright|) except use "visincr" instead of "Vim"
	   No warranty, express or implied.  Use At-Your-Own-Risk.

==============================================================================
1. Contents				*visincr* *visincr-contents*

	1. Contents ....................: |visincr|
	2. Quick Usage .................: |visincr-usage|
	3. Increasing/Decreasing Lists..: |visincr-increase| |visincr-decrease|
	   :I     [#] ..................: |visincr-I|
	   :II    [# [zfill]] ..........: |visincr-II|
	   :IB    [#] ..................: |visincr-IB|
	   :IIB   [# [zfill]] ..........: |visincr-IIB|
	   :IO    [#] ..................: |visincr-IO|
	   :IIO   [# [zfill]] ..........: |visincr-IIO|
	   :IX    [#] ..................: |visincr-IX|
	   :IIX   [# [zfill]] ..........: |visincr-IIX|
	   :IYMD  [# [zfill]] ..........: |visincr-IYMD|
	   :IMDY  [# [zfill]] ..........: |visincr-IMDY|
	   :IDMY  [# [zfill]] ..........: |visincr-IDMY|
	   :IA    [#] ..................: |visincr-IA|
	   :ID    [#] ..................: |visincr-ID|
	   :IM    [#] ..................: |visincr-IM|
	   :IPOW  [#] ..................: |visincr-IPOW|
	   :IIPOW [#] ..................: |visincr-IIPOW|
	4. Examples.....................: |visincr-examples|
	   :I ..........................: |ex-visincr-I|
	   :II .........................: |ex-visincr-II|
	   :IMDY .......................: |ex-visincr-IMDY|
	   :IYMD .......................: |ex-visincr-IYMD|
	   :IDMY .......................: |ex-visincr-IDMY|
	   :IA .........................: |ex-visincr-IA|
	   :ID .........................: |ex-visincr-ID|
	5. Options .....................: |visincr-options|
	6. History .....................: |visincr-history|

==============================================================================
2. Quick Usage				*visincr-usage*

	Use ctrl-v to visually select a column of numbers.  Then

QUICK DECIMAL INCREMENTING
	        :I [#]  will use the first line's number as a starting point
	                default increment (#) is 1
	                will justify left (pad right)
	                For more see |visincr-I|

	        :II [# [zfill]]
	                will use the first line's number as a starting point
	                default increment (#) is 1
	                default zfill         is a blank (ex. :II 1 0)
	                will justify right (pad left)
	                For more see |visincr-II|

	                   ORIG      I        II
	                   +---+   +----+   +----+
	                   | 8 |   | 8  |   |  8 |
	                   | 8 |   | 9  |   |  9 |
	                   | 8 |   | 10 |   | 10 |
	                   | 8 |   | 11 |   | 11 |
	                   +---+   +----+   +----+

QUICK OCTAL AND HEXADECIMAL INCREMENTING

	For octal and hexadecimal incrementing, use the variants
	(the increment is also octal or hexadecimal, respectively)

	        :IO [#]              :IX [#]
	        :IIO [# [zfil]]     :IIX [# [zfill]]

	                   ORIG      IO      IIO
	                   +---+   +----+   +----+
	                   | 6 |   | 6  |   |  6 |
	                   | 6 |   | 7  |   |  7 |
	                   | 6 |   | 10 |   | 10 |
	                   | 6 |   | 11 |   | 11 |
	                   +---+   +----+   +----+

	                   ORIG      IX      IIX
	                   +---+   +----+   +----+
	                   | 9 |   | 9  |   |  9 |
	                   | 9 |   | a  |   |  a |
	                   | 9 |   | b  |   |  b |
	                   | 9 |   | c  |   |  c |
	                   | 9 |   | d  |   |  d |
	                   | 9 |   | e  |   |  e |
	                   | 9 |   | f  |   |  f |
	                   | 9 |   | 10 |   | 10 |
	                   | 9 |   | 11 |   | 11 |
	                   +---+   +----+   +----+

QUICK DATE INCREMENTING

	        The following three commands need <calutil.vim> to do
	        their work:

	        :IYMD [#] Increment year/month/day dates (by optional # days)
	        :IMDY [#] Increment month/day/year dates (by optional # days)
	        :IDMY [#] Increment day/month/year dates (by optional # days)

	        For more: see |visincr-IYMD|, |visincr-IMDY|, and |visincr-IDMY|
	        (these calendar-based options require the calutil.vim plugin;
	        please see |visincr-calutil| on where to get it)

	        :ID  Increment days by name (Monday, Tuesday, etc).  If only
	             three or fewer letters are highlighted, then only
	             three-letter abbreviations will be used.
	             For more: see |visincr-ID|

	        :IA  Increment alphabetic lists
	             For more: see |visincr-IA|

	        :IM  Increment months by name (January, February, etc).
	             Like ID, if three or fewer letters are highlighted,
	             then only three-letter abbreviations will be used.
	             For more: see |visincr-IM|

QUICK RESTRICTED INCREMENTING

		*:RI* :*RII* :*RIMDY* *:RIDMY* *:RID* *:RM* *visincr-restrict*
	        :RI RII RIYMD RIMDY RIDMY RID RM
	             Restricted variants of the above commands - requires
	             that the visual block on the current line start with
	             an appropriate pattern (ie. a number for :I, a
	             dayname for :ID, a monthname for :IM, etc).
	             For more, see

	             Restricted left-justified incrementing......|visincr-RI|
	             Restricted right-justified incrementing.....|visincr-RII|
	             Restricted year/month/day incrementing......|visincr-RIYMD|
	             Restricted month/day/year incrementing......|visincr-RIMDY|
	             Restricted day/month/year incrementing......|visincr-RIDMY|
	             Restricted dayname incrementing.............|visincr-RID|
	             Restricted monthname incrementing...........|visincr-M|


==============================================================================
3. Increasing/Decreasing Lists		*visincr-increase* *visincr-decrease*
					*visincr-increment* *visincr-decrement*

The visincr plugin facilitates making a column of increasing or decreasing
numbers, dates, or daynames.

LEFT JUSTIFIED INCREMENTING			*:I*  *visincr-I*
	:I [#]  Will use the first line's number as a starting point to build
	        a column of increasing numbers (or decreasing numbers if the
	        increment is negative).

	            Default increment: 1
	            Justification    : left (will pad on the right)

	        The IX variant supports hexadecimal incrementing.

								*visincr-RI*
	        The restricted version (:RI) applies number incrementing only
	        to those lines in the visual block that begin with a number.

	        See |visincr-raggedright| for a discussion on ragged-right
	        handling.

		*:IB* *visincr-IB* *:IO* *visincr-IO* *:IX* *visincr-IX*
	:IB [#] left justified binary incrementing
	:IO [#] left justified octal incrementing
	:IX [#] left justified hexadecimal incrementing
	        The commands above are variants of :I.  The increments are
	        in binary, octal, or hexadecimal for their respective commands.

			*:IR* *visincr-IR* *:IIR* *visincr-IIR*
	        These commands do left (IR) and right (IIR) justified
	        Roman numeral enumeration.  The increment for these
	        commands is in the usual arabic numerals (ie. decimal)
	        as Roman numerals don't support negative numbers.


RIGHT JUSTIFIED INCREMENTING			*:II*  *visincr-II*
	:II [# [zfill]]  Will use the first line's number as a starting point
	        to build a column of increasing numbers (or decreasing numbers
	        if the increment is negative).

	            Default increment: 1
	            Justification    : right (will pad on the left)
	            Zfill            : left padding will be done with the given
	                               character, typically a zero.


		*:IIB* *visincr-IIB* *:IIO* *visincr-IIO* *:IIX* *visincr-IIX*
	:IIB [# [zfill]] Does right-justified binary incrementing
	:IIO [# [zfill]] right justified octal incrementing
	:IIX [# [zfill]] right justified hexadecimal incrementing
	        These commands above are variants of :II.  Note that the
	        increments are specified in binary, octal, or hexadecimal,
	        respectively.

								*visincr-RII*
	        The restricted version (:RII) applies number incrementing only
	        to those lines in the visual block that begin with zero or more
	        spaces and end with a number.

RAGGED RIGHT HANDLING FOR I AND II		*visincr-raggedright*
	        For :I, :II, and variants:

	        If the visual block is ragged on the right-hand side (as can
	        easily happen when the "$" is used to select the
	        right-hand-side), the block will have spaces appended to
	        straighten it out.  If the string length of the count exceeds
	        the visual-block, then additional spaces will be inserted as
	        needed.  Leading tabs are handled by using virtual column
	        calculations.

DATE INCREMENTING
	:IYMD [# [zfill]]    year/month/day	*IYMD*	*visincr-IYMD*
	:IMDY [# [zfill]]    month/day/year	*IMDY*	*visincr-IMDY*
	:IDMY [# [zfill]]    day/month/year	*IDMY*	*visincr-IDMY*
	        Will use the starting line's date to construct an increasing
	        or decreasing list of dates, depending on the sign of the
	        number.  (these options need |visincr-calutil|)

	            Default increment: 1 (in days)

			*visincr-RIYMD* *visincr-RIMDY* *visincr-RIDMY*
	        Restricted versions (:RIYMD, :RIMDY, :RIDMY) applies number
	        incrementing only to those lines in the visual block that
	        begin with a date (#/#/#).

	        zfill: since dates include both single and double digits,
	        to line up the single digits must be padded.  By default,
	        visincr will pad the single-digits in dates with zeros.
	        However, one may get blank padding by using a backslash
	        and then a space: >
			:IYMD 1 \
			         ^(space here)
<	        Of course, one may use any charcter for such padding.

	        By default, English daynames and monthnames are used.
	        However, one may use whatever daynames and monthnames
	        one wishes by placing lines such as >
			let g:visincr_dow  = "Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag"
			let g:visincr_month= "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre"
<	        in your <.vimrc> initialization file.  The two variables
	        (dow=day-of-week) should be set to a comma-delimited set of
	        words.
							*g:visincr_datedivset*
	        By default, the date dividers are: given by: >
			let g:visincr_datedivset= '[-./_:~,+*^]\='
<	        You may change the set in your <.vimrc>.  The separator actually
	        used is the first one found in your date column.  A date
	        divider is no longer strictly required (note that \= in the
	        date divider set).  For :IMDY and :IDMY and no date dividers,
	        the year may be 2 or 4 digits.  For :IYMD, the year must be
	        four digits if there are no date dividers.

SINGLE DIGIT DAYS OR MONTHS			*visincr-leaddate*

	        Single digit days or months are converted into two characters
	        by use of
>
			g:visincr_leaddate
<
	        which, by default, is '0'.  If you prefer blanks, simply put
>
			let g:visincr_leaddate= ' '
<
	        into your <.vimrc> file.

CALUTIL NEEDED FOR DATE INCREMENTING		*visincr-calutil*
	        For :IYMD, :IMDY, and IDMY:

	        These options utilize the <calutil.vim> plugin, available as
	        "Calendar Utilities" at the following url on the web:

	        http://mysite.verizon.net/astronaut/vim/index.html#VimFuncs

ALPHABETIC INCREMENTING				*:IA* *visincr-IA*
	:IA     Will produce an increasing/decreasing list of alphabetic
	        characters.

DAYNAME INCREMENTING			*:ID* *visincr-ID* *visincr-RID*
	:ID [#] Will produce an increasing/decreasing list of daynames.
	        Three-letter daynames will be used if the first day on the
	        first line is a three letter dayname; otherwise, full names
	        will be used.

	        Restricted version (:RID) applies number incrementing only
	        to those lines in the visual block that begin with a dayname
	        (mon tue wed thu fri sat).

MONTHNAME INCREMENTING			*:IM* *visincr-IM* *visincr-RIM*
	:IM [#] will produce an increasing/decreasing list of monthnames.
	        Monthnames may be three-letter versions (jan feb etc) or
	        fully-spelled out monthnames.

	        Restricted version (:RIM) applies number incrementing only
	        to those lines in the visual block that begin with a
	        monthname (jan feb mar etc).

POWER INCREMENTING	*:IPOW*  *visincr-IPOW*  *visincr-IIPOW*
	                *:RIPOW* *visincr-RIPOW* *visincr-RIIPOW*
	:IPOW [#] will produce an increasing/decreasing list of powers times
	        the starting point.  The multiplier(divisor)'s default value
	        is 2.

	        Restricted versions (:RIPOW and :RIIPOW) applies only
	        to those lines in the visual block that begin with
	        a number.


==============================================================================
4. Examples:						*visincr-examples*

LEFT JUSTIFIED INCREMENTING EXAMPLES
	:I                              :I 2            *ex-visincr-I*
	            Use ctrl-V to                   Use ctrl-V to
	Original    Select, :I          Original    Select, :I 2
	   8            8                  8            8
	   8            9                  8            10
	   8            10                 8            12
	   8            11                 8            14
	   8            12                 8            16

	:I -1                           :I -2
	            Use ctrl-V to                   Use ctrl-V to
	Original    Select, :I -1       Original    Select, :I -3
	   8            8                  8            8
	   8            7                  8            5
	   8            6                  8            2
	   8            5                  8            -1
	   8            4                  8            -4

RIGHT JUSTIFIED INCREMENTING EXAMPLES
	:II                             :II 2           *ex-visincr-II*
	            Use ctrl-V to                   Use ctrl-V to
	Original    Select, :II         Original    Select, :II 2
	   8             8                 8             8
	   8             9                 8            10
	   8            10                 8            12
	   8            11                 8            14
	   8            12                 8            16

	:II -1                          :II -2
	            Use ctrl-V to                   Use ctrl-V to
	Original    Select, :II -1      Original    Select, :II -3
	   8            8                  8             8
	   8            7                  8             5
	   8            6                  8             2
	   8            5                  8            -1
	   8            4                  8            -4

DATE INCREMENTING EXAMPLES
	:IMDY                                   *ex-visincr-IMDY*
	          Use ctrl-V to                   Use ctrl-V to
	Original  Select, :IMDY         Original  Select, :IMDY 7
	06/10/03     6/10/03            06/10/03     06/10/03
	06/10/03     6/11/03            06/10/03     06/17/03
	06/10/03     6/12/03            06/10/03     06/24/03
	06/10/03     6/13/03            06/10/03     07/01/03
	06/10/03     6/14/03            06/10/03     07/08/03


	:IYMD                                   *ex-visincr-IYMD*
	          Use ctrl-V to                   Use ctrl-V to
	Original  Select, :IYMD         Original  Select, :IYMD 7
	03/06/10    03/06/10            03/06/10    03/06/10
	03/06/10    03/06/11            03/06/10    03/06/17
	03/06/10    03/06/12            03/06/10    03/06/24
	03/06/10    03/06/13            03/06/10    03/07/ 1
	03/06/10    03/06/14            03/06/10    03/07/ 8


	:IDMY                                   *ex-visincr-IDMY*
	          Use ctrl-V to                   Use ctrl-V to
	Original  Select, :IDMY         Original  Select, :IDMY 7
	10/06/03    10/06/03            10/06/03    10/06/03
	10/06/03    11/06/03            10/06/03    17/06/03
	10/06/03    12/06/03            10/06/03    24/06/03
	10/06/03    13/06/03            10/06/03     1/07/03
	10/06/03    14/06/03            10/06/03     8/07/03


ALPHABETIC INCREMENTING EXAMPLES
	:IA                                     *ex-visincr-IA*
	          Use ctrl-V to                 Use ctrl-V to
	Original  Select, :IA         Original  Select, :IA 2
	   a)          a)                A)           A)
	   a)          b)                A)           C)
	   a)          c)                A)           E)
	   a)          d)                A)           G)

DAYNAME INCREMENTING EXAMPLES
	:ID                                     *ex-visincr-ID*
	          Use ctrl-V to                 Use ctrl-V to
	Original  Select, :ID         Original  Select, :ID 2
	  Sun       Sun                 Sun         Sun
	  Sun       Mon                 Sun         Tue
	  Sun       Tue                 Sun         Thu
	  Sun       Wed                 Sun         Sat
	  Sun       Thu                 Sun         Mon


	:ID
	          Use ctrl-V to                 Use ctrl-V to
	Original  Select, :ID         Original  Select, :ID 2
	 Sunday     Sunday             Sunday     Sunday
	 Sunday     Monday             Sunday     Monday
	 Sunday     Tuesday            Sunday     Tuesday
	 Sunday     Wednesday          Sunday     Wednesday
	 Sunday     Thursday           Sunday     Thursday

MONTHNAME INCREMENTING EXAMPLES
	:IM                                     *ex-visincr-IM*
	          Use ctrl-V to                 Use ctrl-V to
	Original  Select, :IM         Original  Select, :IM 2
	  Jan       Jan                 Jan       Jan
	  Jan       Feb                 Jan       Mar
	  Jan       Mar                 Jan       May
	  Jan       Apr                 Jan       Jul
	  Jan       May                 Jan       Sep

	:IM
	          Use ctrl-V to                 Use ctrl-V to
	Original  Select, :IM         Original  Select, :IM 2
	 January    January            January    January
	 January    February           January    March
	 January    March              January    May
	 January    April              January    July
	 January    May                January    September


==============================================================================
5. Options						*visincr-options*

    Default values are shown: >

	let g:visincr_dow  ="Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"
	let g:visincr_month="January,February,March,April,May,June,July,August,September,October,November,December"
	let g:visincr_datedivset= '[-./]'
<
    Respectively controls
      the day of week (ID),
      name of month   (IM), and
      dividers used by IMDY, IYMD, IDMY.

   *g:visincr_longcmd*
   If this variable exists, then "long" commands are provided rather than the
   normal ones; that is, all commands will be preceded with "VI_".
   In other words, VI_I, VI_II, VI_IMDY, etc., commands are provided.
   Put >
	let g:visincr_longcmd= 1
<  in your .vimrc (for it to take effect the variable must be set prior to
   loading visincrPlugin.vim).  Doing this reduces (does not eliminate) the
   possibility of command naming conflicts with other plugins.


==============================================================================
6. History:						*visincr-history* {{{1

	v20: 07/01/08       : Fixed IIO and IIX commands when they're given
	                      two arguments (ex. :IIX 1 0).
	     07/01/08       * Fixed a problem when |'selection'| is
	                      "exclusive" as happens with mswin.vim usage.
	     06/18/09       * Included :IB and :IIB for binary incrementing
	                    * Included support for restricted incrementing:
	                      :RIB, :RIIB, :RIO, :RIIO, :RIX, and :RIIX
	     08/16/11       * |g:visincr_longcmd| provided to reduce command
	                      naming conflicts amongst plugins.
	v19: 12/19/07       : neglected to include calutil on the upload to
	                      vim.sf.net, so a new version was made that
	                      included it.
	v18: 02/13/07       : included IPOW and variants
	     02/15/07       * date dividers are no longer required
	     10/17/07       * calutil.vim and calutil.txt included, and they
	                      use vim 7's autoload feature
	v17: 07/26/06       : -complete=expression added to all visincr
	                      commands
	     07/27/06       * g:visincr_datedivset support included
	v16: 06/15/06       : :IX, :IIX, :IO, and :IIO now support negative
	                      increments and negative counts
	     07/13/06       * :IR :IIR (roman numeral) support included
	v14: 03/21/06       : :IX and :IIX implemented to support hexadecimal
	                      incrementing
	     03/25/06       * Visincr converted to use Vim 7.0's autoloading
	     06/12/06       * Visincr will now direct users trying to do a
	                      calendrical incrementing operation (IMDY, IYMD,
	                      IDMY) but missing calutil.vim to the help on
	                      where to get it (|visincr-calutil|).
	     06/12/06       * :IO and :IIO implemented to support octal
	                      incrementing
	v13: 03/15/06       : a zfill of '' or "" now stands for an empty zfill
	     03/16/06       * visincr now insures that the first character of
	                      a month or day incrementing sequence (:IM, :ID)
	                      is capitalized
	                    * (bugfix) names embedded in a line weren't being
	                      incremented correctly; text to the right of the
	                      daynames/monthnames went missing.  Fixed.
	v12: 04/20/05       : load-once variable changed to g:loaded_visincr
	                      protected from users' cpo options
	     05/06/05         zfill capability provided to IDMY IMDY IYMD
	     05/09/05         g:visincr_dow and g:visincr_month now can be
	                      set by the user to customize daynames and
	                      monthnames.
	     03/07/06         passes my pluginkiller test (avoids more
	                      problems causes by various options to vim)
	v11: 08/24/04       : g:visincr_leaddate implemented
	v10: 07/26/04       : IM and ID now handle varying length long-names
	                      selected via |linewise-visual| mode
	v9 : 03/05/04       : included IA command
	v8 : 06/24/03       : added IM command
	                      added RI .. RM commands (restricted)
	v7 : 06/09/03       : bug fix -- years now retain leading zero
	v6 : 05/29/03       : bug fix -- pattern for IMDY IDMY IYMD didn't work
	                      with text on the sides of dates; it now does
	v5 : II             : implements 0-filling automatically if
	                      the first number has the format  0000...0#
	     IYMD IMDY IDMY : date incrementing, uses <calutil.vim>
	     ID             : day-of-week incrementing
	v4 : gdefault option bypassed (saved/set nogd/restored)

vim: tw=78:ts=8:ft=help:fdm=marker