我想启用鼠标滚轮进行滚动,就像^e
这样^y
。但我并不想在缓冲区中单击来移动光标,所以这对:set mouse=a
我没有帮助。
原因是我打开了一堆 GUI 窗口(Web 浏览器、聊天等)并单击以聚焦 vim,但如果我在缓冲区内单击,它会将光标移动到我单击的位置。我还喜欢使用鼠标滚轮进行滚动,因为我发现它比^e
和更快^y
,并且更容易跟踪我所在的位置^d
和^u
或<pgdn>
和<pgup>
。
有没有办法可以启用鼠标滚动支持,但在单击时禁用光标位置改变?
谢谢!
答案1
您可以通过将鼠标按钮映射到 来选择性地禁用它们<nop>
。例如,要禁用鼠标左键:
:nmap <LeftMouse> <nop>
:imap <LeftMouse> <nop>
:vmap <LeftMouse> <nop>
如果您还想忽略双击:
:nmap <2-LeftMouse> <nop>
…
看:
:help gui-mouse-mapping
:help map-overview