在 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" 在 vim 中被扩展,而不是在命令行上运行。我需要做什么才能运行它,以便将内容放入 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>