Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim-使单击退出插入模式_Vim - Fatal编程技术网

Vim-使单击退出插入模式

Vim-使单击退出插入模式,vim,Vim,没有什么比幻影触摸板点击更让我讨厌的了,它会导致我的文本被随机输入。我几乎宁愿将输入解释为随机Vim命令。无论如何,我的配置使离开插入模式在视觉上非常明显,所以这应该不是问题 我该怎么做?我认为在Vim中没有一种映射或拦截鼠标事件的方法。我希望可能会有一个自动MD的某种类型的火灾点击 我这里只讨论命令行Vim。不是MacVim或类似的东西。对于:set mouse=a(或至少:set mouse=i),可以使用以下映射: inoremap <LeftMouse> <Esc>

没有什么比幻影触摸板点击更让我讨厌的了,它会导致我的文本被随机输入。我几乎宁愿将输入解释为随机Vim命令。无论如何,我的配置使离开插入模式在视觉上非常明显,所以这应该不是问题

我该怎么做?我认为在Vim中没有一种映射或拦截鼠标事件的方法。我希望可能会有一个自动MD的某种类型的火灾点击


我这里只讨论命令行Vim。不是MacVim或类似的东西。

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

inoremap <LeftMouse> <Esc>
inoremap

有关详细信息,请参见
:帮助鼠标
:使用
帮助鼠标。

使用
:设置鼠标=a
(或至少
:设置鼠标=i
),可以使用以下映射:

inoremap <LeftMouse> <Esc>
inoremap

有关详细信息,请参见
:帮助鼠标
:使用
帮助鼠标。

您也可以将鼠标映射为不执行任何操作:

inoremap <LeftMouse> <Nop>
inoremap
编辑方式:OP:这一点见解是问题的完美解决方案

我更喜欢确保在插入模式下忽略左键单击。我非常喜欢这个答案的原因是它提供了12个打孔机,不仅防止了光标的移动(导致我的文本出现在我随机点击的地方),而且还防止了VIM导致我在键入中间的那些键被解释为VIM命令,这就是当左键单击绑定到
时会发生的情况

然而,我发现有时我会在插入模式下顽固地敲打鼠标来更改窗口,即使我在插入模式下将整个状态栏设置为更改颜色,这主要是因为我很愚蠢,并且默认绑定的双击、三次和四次左键单击仍然可以触发,尽管有单次单击贴图,因为在这种情况下,我只是本能地按下了按钮(在本例中是鼠标左键),这种行为是由脆弱/滞后的网络连接根深蒂固的(考虑到TCP如何工作,这实际上仍然没有任何意义…)

所以,为了解决这个问题,并配置Vim,这样它将迫使我意识到我处于插入模式,这里有一组更可靠的绑定。它清除了左键单击的所有默认功能,导致各种视觉模式选择生效(如果继续取消,仍将使我返回到其他地方的插入模式,即我要纠正的原始行为):

inoremap”通常会导致视觉选择模式
“inoremap”通常会导致视觉单词选择模式
“inoremap”通常会导致视觉选线模式
“inoremap”通常会导致视觉块选择模式

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

inoremap <LeftMouse> <Nop>
inoremap
编辑方式:OP:这一点见解是问题的完美解决方案

我更喜欢确保在插入模式下忽略左键单击。我非常喜欢这个答案的原因是它提供了12个打孔机,不仅防止了光标的移动(导致我的文本出现在我随机点击的地方),而且还防止了VIM导致我在键入中间的那些键被解释为VIM命令,这就是当左键单击绑定到
时会发生的情况

然而,我发现有时我会在插入模式下顽固地敲打鼠标来更改窗口,即使我在插入模式下将整个状态栏设置为更改颜色,这主要是因为我很愚蠢,并且默认绑定的双击、三次和四次左键单击仍然可以触发,尽管有单次单击贴图,因为在这种情况下,我只是本能地按下了按钮(在本例中是鼠标左键),这种行为是由脆弱/滞后的网络连接根深蒂固的(考虑到TCP如何工作,这实际上仍然没有任何意义…)

所以,为了解决这个问题,并配置Vim,这样它将迫使我意识到我处于插入模式,这里有一组更可靠的绑定。它清除了左键单击的所有默认功能,导致各种视觉模式选择生效(如果继续取消,仍将使我返回到其他地方的插入模式,即我要纠正的原始行为):

inoremap”通常会导致视觉选择模式
“inoremap”通常会导致视觉单词选择模式
“inoremap”通常会导致视觉选线模式
“inoremap”通常会导致视觉块选择模式

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

inoremap <LeftMouse> <Esc><LeftMouse>

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

inoremap <LeftMouse> <Esc><LeftMouse>

谢谢!这使console vim在插入模式下停止了“错误解释”的左键点击==>它倾向于将光标移动到缓冲区底部,而没有您的出色映射:
inoremap
。(我所说的“控制台vim”,实际上是指Windows机器上的
vim gtk
,由Pengwin WSL通过
wsltty
托管。这将是一个独特的问题,因为从2019-12-11起,并非所有Windows WSL终端都支持MOUE点击。)非常感谢!这使console vim在插入模式下停止了“错误解释”的左键点击==>它倾向于将光标移动到缓冲区底部,而没有您的出色映射:
inoremap
。(我所说的“控制台vim”,实际上是指Windows机器上的
vim gtk
,由Pengwin WSL通过
wsltty
托管。这是一个独特的问题,因为从2019-12-11起,并非所有Windows WSL终端都支持MOUE点击。)