vim将时间戳放在文件名中

vim*_*guy 2 vim filenames timestamp

我一直在尝试在vim中的文件名中插入时间戳.我找到的最好的例子就是这个.虽然这适用于将时间戳放在文件中,但它在命令行中不起作用.这是我在vimrc中的内容:

nmap <F3> a<C-R>=strftime("%Y%m%d%H%M")<CR><Esc>
imap <F3> <C-R>=strftime("%Y%m%d%H%M")<CR>
Run Code Online (Sandbox Code Playgroud)

在命令行中输入:

:sav i<C-R><F3>.txt
Run Code Online (Sandbox Code Playgroud)

希望得到:

i201102121400.txt
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

E15: Invalid Expression: <F3>
E15: Invalid Expression: <F3>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

此外,我正在使用Windows和Linux,所以它必须同时工作.

额外奖励:如果我能得到它来获得UTZ时间而不是当地时间,那就太棒了!

Bri*_*Onn 5

您需要使用cmap,而不是nmap或imap.

添加相同的行以在cmap(命令行映射)中设置F3

cmap <F3> <C-R>=strftime("%Y%m%d%H%M")<CR>
Run Code Online (Sandbox Code Playgroud)

如果您不需要时间戳或想要在编辑缓冲区中使用它们,请删除nmap和imap映射.