有时vim映射会插入字符而不是执行命令

时间:2014-07-30 00:43:59

标签: vim

我的一些映射,而不是执行我想要的命令,将打印一些字符。看起来有时候执行得不够快。它通常发生在我快速编程打字和扩展方法之后。

以此映射为例:

inoremap <leader>s <ESC>:w<cr>

假装“|” (管道)是光标所在的位置。

假设我正在编写一个方法,如下所示:

public function something()
{|

然后我按Enter键,代码扩展为

public function something()
{
    |
}

然后我继续实施:

public function something()
{
    return "something|"
}

当执行<leader>s该位置的文件时,代码变为:

public function something()
{
    return "something:w
"
}

这太烦人了。我的vimrc是here。也许这与某些插件有关,但我真的不知道如何找出发生的事情或如何调试。当我尝试重现错误时,我可以完成它,因为它是随机的。它大多数时候都能正常工作。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用i[nore]map进行插入模式映射。好吧,始终使用特定于模式的映射命令:

" insert mode mapping
inoremap <leader>s <esc>:w<cr>

测验:第一个字母在下面的映射中意味着什么?

n[nore]map <key> something
x[nore]map <key> something
c[nore]map <key> something
相关问题