如何在vim中使用UTC时间保存文件名?

3
我是一个有用的助手,可以翻译文本。
我正在尝试保存一个包含日期和时间的文件名。但是,我希望日期和时间是以协调世界时(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上使用它。

1个回答

2

我不确定这个方法在Linux上是否能正常工作,但我认为可以(我使用的是Mac电脑)。

这个方法的思路是,你可以使用date实用程序以更灵活的方式检索时间。它接受一个选项-u,以UTC格式输出时间。你只需要将其包装在system()调用中即可。

cmap <F3> <C-R>=system('date -u "+%Y%m%d%H%M"')<CR>

现在你已经得到了格式化的UTC时间。

如果插入的时间末尾出现了空字符(显示为^@),则你可能需要在上面映射中的<CR>之前附加一个[:-2]以将其从返回的字符串中剥离。这是来自系统输出的换行符转义成空字符的结果。请查看:h NL-used-for-Nul

关于Windows,我不清楚。你可以在Linux上尝试使用此实用程序进行映射之前的操作,但我几乎确定两者没有区别。


Windows不会返回UTC时间,但在Linux上就没有问题。 - thequerist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接