仅在 iTerm (MacOSX) 中的 Vim 中启用鼠标滚动

Jon*_*aun 34 mouse vim iterm scrolling macos

我想在 Vim 中使用鼠标用于滚动(不启用其他 Vim 模式或以其他方式与 Vim 交互)。使用:set mouse=a似乎是一个全有或全无的操作,这可以改变吗?或者,是否可以让 iTerm 仅通过滚动事件而从不单击/拖动事件?

详细说明:我在 iTerm 中经常使用 Vim 并且不使用鼠标。但是,使用触控板进行惯性滚动非常好,并且是细读大文件的好方法。我可以:set mouse=a使用触控板滚动,这很棒。现在当我点击但是 vim 进入可视模式并且 iTerm 不会复制选定的文本。我想保留 iTerms 选择和复制文本的能力。

我想过设置 Vim,以便在 vim 中复制将在 Mac OS X 中复制(使用 pbcopy,无论如何我都需要这样做)。这将在编辑本地文件时起作用,但大部分时间我都在ssh某处编辑远程文件。

小智 48

你可以用

:set mouse=nicr
Run Code Online (Sandbox Code Playgroud)

正如我所测试的那样,它仅适用于鼠标滚动。

  • @JonahBraun,如果您在进行选择时按住 option,iTerm 将使用`:set mouse=nicr` 进行鼠标选择。见 http://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled (7认同)
  • 不是我需要的,因为它会在 vim 中滚动,iTerm 不会让我选择文本。我已经 `:set mouse=i` 以便滚动在插入模式下工作,而 iTerm 在正常模式下选择。足够接近,所以我标记回答。谢谢你的主意! (4认同)
  • 对我来说,这看起来像是“将鼠标设置得更好”。 (3认同)

Mik*_*rty 24

如果你set mouse=a,你仍然可以使用Option- click 来让 iTerm 做选择。不理想,但这是我找到的最佳选择。

  • 这是真正可行的答案。 (3认同)

小智 5

对于 Iterm2

首选项 -> 高级 -> 鼠标选项卡,切换:

Scroll wheel sends arrow keys when in alternate screen mode
Run Code Online (Sandbox Code Playgroud)

到:

Yes
Run Code Online (Sandbox Code Playgroud)