我在.vimrc
中添加了以下几行:
nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>
在正常模式下,它按预期工作,即插入时间戳。
但是,在插入模式下,我插入了<F3>
。我做错了什么以及如何让它发挥作用?
UPDATE :我意识到一切都在Gvim中按预期工作,问题只在于终端vim(我尝试过lxterminal和gnome-terminal)。如果它有帮助,我有重新映射Esc字符的类似问题,在Gvim中工作正常,但在Vim中没有。
更新2 :虽然我不能排除我可能对系统做出的其他一些改变,但很有可能升级到更新的vim版本会使问题消失。重新映射Esc现在也可以工作,即终端Vim(版本8.1,2018年5月18日)表现为Gvim。
答案 0 :(得分:0)
可能是您启用了:set paste
。 粘贴模式阻止任何插入和命令行模式映射生效。它只能在将文本粘贴到终端之前(通常是通过'pastetoggle'
中定义的键才临时输入。这仅在终端中是必需的(并且只有那些没有括弧式粘贴模式的人< / em>),GVIM可以自行检测粘贴,这会影响任何插入模式映射。您可以通过
:verbose set paste?