2014-04-15 73 views
0

没有什么我讨厌幻影触摸板点击造成我的文本随机进入某处。我宁愿将打字解释为随机的Vim命令。无论如何,我的配置使得离开插入模式在视觉上非常显眼,所以这应该不是问题。Vim - 使点击退出插入模式

我该怎么做?我不认为有一种方法可以在Vim中映射或拦截鼠标事件。我希望也许有一种点击触发的autocmd?

我只在这里谈论命令行Vim。不是MacVim或其他一些。

回答

5

您也可以映射鼠标什么也不做:由OP

inoremap <LeftMouse> <Nop> 

编辑:这种认识的一点是这个问题的完美解决方案。

我更喜欢该死的确定在插入模式下左键被忽略。我非常喜欢这个答案的原因是它提供了不仅阻止游标移动(使我的文本出现在我随机点击的地方)的一次两拳,而且还防止了Vim造成这些错误键在键入时被解释为Vim命令,这是左键单击时要发生的情况,即<ESC>

但是我发现有时候我会固执地一直骂鼠标来改变窗口同时仍然在插入模式下,即使我把我的整个状态栏而改变颜色插入模式,主要是因为我傻,和尽管单击地图,双击,三重和四重左键单击的默认绑定仍然可以触发,因为在这种情况下,我只是将我正在敲击的按钮(本例中为左鼠标)本能地捣碎,一种根据片状/网络连接(这实际上仍然没有任何意义考虑TCP功能如何...)

因此,要解决该问题并配置Vim,以便它会迫使我意识到我处于插入模式,这里是一个平均的更加防弹的一套绑定。它清除了左键单击的所有默认功能,导致各种视觉模式选择生效(如果我继续取消,仍然会将我放回其他地方的插入模式,这是我打算纠正的原始行为):

inoremap <LeftMouse> <Nop> "normally causes visual selection mode 
inoremap <2-LeftMouse> <Nop> "normally causes visual word selection mode 
inoremap <3-LeftMouse> <Nop> "normally causes visual line selection mode 
inoremap <4-LeftMouse> <Nop> "normally causes visual block selection mode 
2

随着:set mouse=a(或至少:set mouse=i),可以使用下面的映射:

inoremap <LeftMouse> <Esc> 

有关更多信息,请参见:help mouse:help mouse-using

+0

令人惊叹!是。谢谢。 –