如何在 vim 中插入日期

如何在 vim 中插入日期

在 vim 中,您可以使用“!”执行命令。您可以将其与“r”组合以将输出插入到当前缓冲区。

:r!date
2012 年 7 月 20 日星期五 09:39:26 SAST

会将日期插入到文件中。

现在,当我尝试做一些更有趣的事情,比如使用不同格式 +%F 的日期时。在命令行上

$ 日期 +%F
2012-07-20

在 vim 中

:r!date "+%F"
消息.to.followup.lstF

输出文件的名称并在其后添加 F。不知何故,r!date "+%F" 在 vi​​m 中被扩展,而不是在命令行上运行。我需要做什么才能运行它,以便将内容放入 vim 中。

也许 vim 有更好的方法将日期插入到文件中。

答案1

Vim 有一个内部strftime()函数。试试这个(在插入模式下):

<C-r>=strftime('%F')<CR>

答案2

我不断尝试,直到我发现 vim 扩展了“%”字符。因此,只需转义“\%”,一切便会按预期运行。

:r!date "+\%F"
2012-07-20

现在我可以将日期放入文件中,就像我想要的那样

:r!date "+\%F" -d "-2 天"
2012-07-18

答案3

另一种方法,无需转义,使用system()

system('date +%F')

插入模式:

<C-r>=system('date +%F')<CR>

普通的模式:

:put=system('date +%F')<CR>

相关内容