如何在vim中插入日期

nel*_*aro 28 linux bash vim date command-line

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

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

将日期插入到文件中。

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

$日期+%F
2012-07-20

在vim中

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

其中 out 放置文件的名称并在其后放置 F。一些如何在 vim 中扩展 r!date "+%F" 而不是在命令行上运行。我需要做什么才能运行它,以便将内容放入 vim。

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

Hep*_*ite 26

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

<C-r>=strftime('%F')<CR>
Run Code Online (Sandbox Code Playgroud)

  • 我选择你的答案是因为它是最像 vim 的做事方式。 (2认同)
  • 在 **正常模式** 中这是相同的(在**当前位置**插入日期):`"=strftime("%F")&lt;CR&gt;P`(来源:http://vim.wikia。 com/wiki/Insert_current_date_or_time) (2认同)

nel*_*aro 19

我一直在尝试,直到我发现 vim 正在扩展“%”字符。所以只需转义 "\%" 一切都按我的预期工作。

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

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

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


rom*_*inl 11

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

system('date +%F')
Run Code Online (Sandbox Code Playgroud)

插入模式下:

<C-r>=system('date +%F')<CR>
Run Code Online (Sandbox Code Playgroud)

师范大学方式:

:put=system('date +%F')<CR>
Run Code Online (Sandbox Code Playgroud)

  • &lt;Cr&gt; 非常有用,我希望我花更多的时间阅读 vim 的帮助。 (2认同)
  • 永远不会太迟。 (2认同)