2016-12-01 60 views
1

我想用<leader>e返回从我在任何模式下的正常模式。插入模式我用重新映射Esc键在命令行模式Vim的

inoremap <leader>e <esc> 

我想同样的事情,退出命令行模式,所以我写了

cnoremap <leader>c <esc> 

但是,当它退出命令行模式时,它会尝试执行任何通过命令行写入的内容。但是,当我正常使用<esc>时,它将存在命令行模式而不执行任何操作。我通常不得不按<enter>执行该命令。

任何人都可以帮助我理解这里发生了什么,以及我能做些什么来获得我想要的行为。

谢谢!

回答

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>