How to insert the date into vim
In vim you can execute comands with "!". You can combine that with "r" to insert the output into your current buffer.
:r!date
Fri Jul 20 09:39:26 SAST 2012
will insert the date into a file.
Now when I try to do some more interesting stuff like date with different format +%F. On the command line
$ date +%F
2012-07-20
In vim
:r!date "+%F"
message.to.followup.lstF
Which out puts the name of the file and puts F after it. some how the r!date "+%F" is being expanded in vim and not run on the command line. What do I need to do to run that so it puts the contents in vim.
Maybe vim has a better way to insert dates into files.
Vim has an internal strftime()
function. Try this (in insert mode):
<C-r>=strftime('%F')<CR>
I kept experimenting till I figured out that vim was expanding the "%" character. So just escape "\%" and every thing works as I expected.
:r!date "+\%F"
2012-07-20
Now I can put dates into files Like I would like to
:r!date "+\%F" -d "-2 day"
2012-07-18
Another method, without escaping, using system()
:
system('date +%F')
In INSERT mode:
<C-r>=system('date +%F')<CR>
In NORMAL mode:
:put=system('date +%F')<CR>