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时间而不是当地时间,那就太棒了!
您需要使用cmap,而不是nmap或imap.
添加相同的行以在cmap(命令行映射)中设置F3
cmap <F3> <C-R>=strftime("%Y%m%d%H%M")<CR>
Run Code Online (Sandbox Code Playgroud)
如果您不需要时间戳或想要在编辑缓冲区中使用它们,请删除nmap和imap映射.