我正在尝试保存一个包含日期和时间的文件名。但是,我希望日期和时间采用 UTC。这就是我正在做的:
在 vimrc 中:
cmap <F3> <C-R>=strftime("%Y%m%d%H%M")<CR>
我在保存文件时输入:
:w i<F3>.txt
我得到一个名为:
i[localtime].txt
但我想要:
i[UTCtime].txt
有没有办法真正做到这一点,还是我永远坚持本地时间? Vim 是我探索不同时区的唯一方式,请帮助我。 :)
哦,顺便说一下,我将同时使用 Linux 和 Windows。
最佳答案
嗯,我不确定这是否能在 Linux 上正常工作,但我相信(我在 Mac 上)。
这个想法是,您可以使用 date
实用程序可以更灵活地检索时间。它接受一个选项 -u
它以 UTC 格式输出时间。您所要做的就是将其包装在 system()
中打电话。
cmap <F3> <C-R>=system('date -u "+%Y%m%d%H%M"')<CR>
然后您就有了格式化的 UTC 时间。
如果空字符出现在插入时间的末尾(显示为 ^@
),那么您可能需要附加一个 [:-2]
将其从返回的字符串中删除,就在 <CR>
之前在上面的映射中。这来自系统输出的翻译换行符。检查:h NL-used-for-Nul
.
关于 Windows,我不知道。在映射事物之前,您可能想在 Linux 中试用该实用程序,但我几乎可以肯定不会有任何差异。
关于vim - 如何在 vim 中保存带有 UTC 时间的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748639/