我想使用<leader>e
从我所处的任何模式返回正常模式。对于插入模式,我使用
inoremap <leader>e <esc>
我想要退出命令行模式同样的事情,所以我写了
cnoremap <leader>c <esc>
但是,当它退出命令行模式时,它会尝试执行写入命令行之外的任何内容。但是,当我只是正常使用<esc>
时,它存在命令行模式而不执行任何操作。我通常必须按<enter>
来执行命令。
任何人都可以帮助我了解这里发生的事情,以及我能做些什么来获得我想要的行为。
谢谢!
答案 0 :(得分:2)
根据帮助:
CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command.
似乎“在宏中”也适用于映射的右侧(好吧,它不是“打字”)。您可以使用 CTRL-C ,因为它永远不会执行命令:
*c_CTRL-C*
CTRL-C quit command-line without executing
所以就这样做:
cnoremap <leader>c <c-c>