Produce increasing/decreasing columns of numbers, dates, or daynames
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload
doc
plugin
README

README

This is a mirror of http://www.vim.org/scripts/script.php?script_id=670

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

First, select a column using visual-block (ctrl-v) and move the cursor.

Second, choose what sort of incremented list you want:

    :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)

    :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.

    :IYMD [#]    year/month/day
    :IMDY [#]    month/day/year
    :IDMY [#]    day/month/year
        Will use the starting line's date to construct an increasing
        or decreasing list of dates, depending on the sign of the
        number.
        Default increment: 1 (in days)

    :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.

    :IO [#]
    :IIO [#] [zfill]
        Like :I and :II, except visincr creates octal numbers.

    :IR [#]
    :IIR [#] [zfill]
        Like :I and :II, except visincr uses Roman numerals.  Negative and
        zero counts are not supported for Roman numerals.

    :IX [#]
    :IIX [#] [zfill]
        Like :I and :II, except visincr creates hexadecimal numbers.

    -------------------
    EXTRA NOTES
    -------------------
    For :I :II :IO :IIO :IR :IIR :
        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.

    For :IR and :IIR :
        Since Roman numerals vary considerably in their lengths for
        nearby numbers, an additional two spaces will be included.

    For :IYMD, :IMDY, and IDMY:
        You'll need the <calutil.vim> plugin, available as
        "Calendar Utilities" under the following url:

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

Help is included, too -- check out  :he visincr-examples to see
even more examples of each command in action.

Examples:

        :I
                    Use ctrl-V to
        Original    Select, :I
           8            8
           8            9
           8            10
           8            11
           8            12

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


        :II
                    Use ctrl-V to
        Original    Select, :II
           8             8
           8             9
           8            10
           8            11
           8            12

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


        :IMDY
                  Use ctrl-V to
        Original  Select, :IMDY
        06/10/03     6/10/03
        06/10/03     6/11/03
        06/10/03     6/12/03
        06/10/03     6/13/03
        06/10/03     6/14/03


        :IYMD
                  Use ctrl-V to
        Original  Select, :IYMD
        03/06/10    03/06/10
        03/06/10    03/06/11
        03/06/10    03/06/12
        03/06/10    03/06/13
        03/06/10    03/06/14




        :IDMY
                  Use ctrl-V to
        Original  Select, :IDMY
        10/06/03    10/06/03
        10/06/03    11/06/03
        10/06/03    12/06/03
        10/06/03    13/06/03
        10/06/03    14/06/03


        :ID
                  Use ctrl-V to
        Original  Select, :ID
          Sun       Sun
          Sun       Mon
          Sun       Tue
          Sun       Wed
          Sun       Thu


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

        :IA
                  Use ctrl-V to
        Original  Select, :IA
           a          a
           a          b
           a          c
           a          d
           a          e

        :IO
                  Use ctrl-V to
        Original  Select, :IO
            5         5 
            5         6 
            5         7 
            5         10
            5         11

        :IR
                  Use ctrl-V to
        Original  Select, :IR
           II         II
           II         III
           II         IV
           II         V 
           II         VI

                  Use ctrl-V to
        Original  Select, :IX
            8         8
            8         9
            8         a
            8         b
            8         c


-------------
SEE ALSO
-------------
vis     : vimscript#1195 : apply any ex command (ex. :s/../../) to a visual block
vissort : vimtip#588     : how to sort a visual block (or sort based on one)
visincr : http://mysite.verizon.net/astronaut/vim/index.html#VISINCR (for the latest, albeit experimental, release)