tpope / vim-speeddating

speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more
http://www.vim.org/scripts/script.php?script_id=2120
963 stars 40 forks source link

speeddating.vim

Take the following date:

1999-12-31

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

1999-12-30

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

2000-01-01

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.

Installation

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 https://tpope.io/vim/speeddating.git
vim -u NONE -c "helptags speeddating/doc" -c q

Contributing

See the contribution guidelines for pathogen.vim.

Self-Promotion

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.

License

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