speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more
Vim script
Clone or download
Latest commit a418667 May 23, 2017



Take the following date:


Because Vim treats the hyphen as a negative sign, pressing <C-A> on the 31 would normally increment it to


Compare this with what happens when speeddating.vim is installed:


Pressing 5<C-X> on the 03 in the first line below transforms it into the second:

Sat, 01 Jan 2000 00:00:03 +0000
Fri, 31 Dec 1999 23:59:58 +0000

Several date, time, and datetime formats are included. Additional formats can be defined in a strftime-like syntax with the :SpeedDatingFormat command.

Existing Vim semantics are preserved. <C-A> and <C-X> accept a count, and plain number incrementing is used if no date format is matched.

Use of <C-A>/<C-X> in visual mode enables incrementing several lines at once. Blank spots are filled by incrementing the match from the previous line, allowing for creation of sequences (1, 2, 3; 2000-10-30, 2000-10-31, 2000-11-01).

It can also increment roman numerals and ordinals (1st, 2nd, 3rd, ...). In visual mode, letters of the alphabet are supported.

d<C-X> sets the timestamp under the cursor to the current time. d<C-A> does the same, but uses UTC rather than the local time.

The . command will work as expected if you install repeat.vim.


If you don't have a preferred installation method, I recommend installing pathogen.vim, and then simply copy and paste:

cd ~/.vim/bundle
git clone git://github.com/tpope/vim-speeddating.git

Once help tags have been generated, you can view the manual with :help speeddating.


See the contribution guidelines for pathogen.vim.


Like speeddating.vim? Follow the repository on GitHub and vote for it on vim.org. And if you're feeling especially charitable, follow tpope on Twitter and GitHub.


Copyright © Tim Pope. Distributed under the same terms as Vim itself. See :help license.