我想在 Vim 中使用鼠标仅有的用于滚动(不启用其他 Vim 模式或以其他方式与 Vim 交互)。使用:set mouse=a
似乎是一个全有或全无的操作,可以改变吗?或者,是否可以将 iTerm 设置为仅传递滚动事件,而不传递单击/拖动事件?
详细解释:我在 iTerm 中经常使用 Vim,而不使用鼠标。但是,使用触控板进行惯性滚动确实很棒,是浏览大文件的绝佳方式。我可以:set mouse=a
使用触控板进行滚动,这很棒。但是现在当我单击时,vim 会进入可视模式,iTerm 不会复制选定的文本。我想保留 iTerms 选择和复制文本的能力。
我曾考虑过设置 Vim,这样在 vim 中复制的内容也会在 Mac OS X 中复制(使用 pbcopy,无论如何我都需要这样做)。这在编辑本地文件时会起作用,但大多数时候我都在ssh
某个地方编辑远程文件。
答案1
你可以使用
:set mouse=nicr
据我测试,它仅适用于鼠标滚动。
答案2
如果你set mouse=a
,你仍然可以使用选项-单击让 iTerm 进行选择。虽然不理想,但这是我发现的最佳选择。
答案3
对于 Iterm2
首选项 -> 高级 -> 鼠标选项卡,切换:
Scroll wheel sends arrow keys when in alternate screen mode
到:
Yes
答案4
您还可以设置 vim 环境命令行选项
例如:
vim -c 'set mouse=a'
因此,vim 的一个自动执行此操作的替代别名可能是:
alias vimmy="vim -c 'set mouse=a'"