Created: 2008-09-11 01:07
Updated: 2019-02-27 22:48



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.


Install using your favorite package manager, or use Vim's built-in package support:

mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone
vim -u NONE -c "helptags speeddating/doc" -c q


See the contribution guidelines for pathogen.vim.


Like speeddating.vim? Follow the repository on GitHub and vote for it on 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.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more