Vim - 单击退出插入模式

时间:2014-04-15 04:19:49

标签: vim

没有什么比虚幻的触控板点击更让我讨厌,导致我的文字随机进入某个地方。我几乎宁愿将输入解释为随机Vim命令。无论如何,我确实有配置,使得插入模式在视觉上非常引人注目,因此这将是一个非问题。

我该怎么做?我认为没有办法在Vim中映射或拦截鼠标事件。我希望也许某种类型的autocmd会触发点击?

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

3 个答案:

答案 0 :(得分:5)

您也可以将鼠标映射为什么都不做:

inoremap <LeftMouse> <Nop>

OP编辑:这一点点洞察力是问题的完美解决方案。

我更喜欢确定在插入模式下忽略左键单击。我之所以如此喜欢这个答案,是因为它提供了一两个不仅防止光标移动的冲击(使我的文本出现在我随机幻影点击的地方),但它也阻止了Vim引起这些键我正在键入的中间被解释为Vim命令,这是左键单击绑定到<ESC>时会发生的事情。

然而,我发现有时我会顽固地坚持使用鼠标来改变窗口,同时仍然处于插入模式,即使我将整个状态栏设置为在插入模式下更改颜色,主要是因为我是愚蠢,尽管单击地图,仍然可以触发双击,三击和四次左击的默认绑定,因为在这种情况下,我只是将我正在击打的按钮(在这种情况下是鼠标)本能地混合,一种根深蒂固的行为通过flaky / laggy网络连接(考虑到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

答案 1 :(得分:2)

使用:set mouse=a(或至少:set mouse=i),您可以使用以下映射:

inoremap <LeftMouse> <Esc>

有关详细信息,请参阅:help mouse:help mouse-using

答案 2 :(得分:0)

我使用了Nikita Kouevda的版本,但做了一些小的调整,以避免多次单击:

inoremap <LeftMouse> <Esc><LeftMouse>

这将使您退出,然后执行默认操作。与他的鼠标模式一样,必须为:

:set mouse=a