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)