如何在gvim中重新映射control-shift-leftmouse?

5

我想在gvim(和MacVim)中重新映射修改后的点击,但某些修饰符的组合可以工作,而另一些则不行。在Linux上的gvim中,我想在任何地方插入“hello”:

:noremap <C-S-LeftMouse> <LeftMouse>ihello<ESC>

然而,该命令无效:控制-Shift-单击保留其原始行为。然而我可以在gvim中重新映射控制-单击:
:noremap <C-LeftMouse> <LeftMouse>ihello<ESC>

在MacVim中,命令-Shift-点击<D-S-LeftMouse>同样无响应,大多数其他修改后的鼠标点击也是如此。
我该如何重新映射修改后的鼠标点击?

同名 :) 好发现。我不清楚,但我可以确认你在Linux上的发现。 - sehe
2个回答

4

如果您想在MacVim中重新映射<C-LeftMouse>,您需要先禁用上下文菜单:

defaults write org.vim.MacVim MMTranslateCtrlClick 0

2

MacVim中无法使用双重修饰键,这是已知的限制/错误。

:nnoremap <M-LeftMouse> <LeftMouse>ihello<Esc>

看起来似乎可以工作,但是既不是<C-LeftMouse>也不是<D-LeftMouse>

<C-LeftMouse>会带出每个人都期望的正常上下文菜单,我不指望它会轻易改变。

<D-LeftMouse>什么也不做。我想知道它是否已经被注册了。


啊,唉。MacVim文档中没有提到任何<D-{Mouse}>事件,只有修改过的按键。 - Seth Johnson
我猜“无法完成”是一个合理的答案(被接受)。MacVim的作者也确认<D-Mouse>没有实现。 - Seth Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接