在Vim中使用鼠标滚轮

58

我的.vimrc文件包含以下行:

set mouse=a
map <ScrollWheelUp> <C-Y>
map <ScrollWheelDown> <C-E>

但是,当我使用鼠标滚轮向上滚动时,我的屏幕会显示在 Vim 之前的文本。例如,如果我刚打开 Vim,我将看到终端会话文本。我最初尝试在帮助文件上使用鼠标滚轮,然后转到其他文件,因此需要使用 a 选项。

我还需要设置什么吗?我正在 Snow Leopard 和终端内部使用 Vim 7.3。

这里,我只是向上滚动了一下。请注意屏幕顶部的终端会话。 enter image description here


1
建议:试试MacVim。它有一些不错的Cocoa绑定。 - Chetan
奇怪的是,我喜欢这种行为,并正在寻找一种方法,在使用vim时始终滚动终端历史记录。通过设置所需的mouse=<mode>,vim中的鼠标滚动通常可以修复,如下所述,但是当vim将终端设置为窗口模式(如果术语不正确,请原谅),某些术语会保留过去的历史记录,而其他术语则会隐藏它并在窗口内滚动,模仿vim的行为。我认为这是终端仿真器的问题,但是vim 8.1显然有一些解决方法-https://dev59.com/NVUL5IYBdhLWcg3wUWmt(尽管我已经用CTRL-Z了...) - Thomas Guyot-Sionnest
6个回答

112

在OS X的iTerm 2中使用vim,您可以通过执行:set mouse=a来启用滚动鼠标滚轮,以及选择进入Visual模式等功能。


3
终端也完美地运行了。如果出现问题,请尝试使用cmd+r,然后再尝试这个条件。 - ShikharDua
11
如果你只想在normal模式下启用滚动,可以使用命令:set mouse=n - Filip Kilibarda
在 Bash on Windows 中也可以在 vim 中工作。 - x__x
1
你可以通过在 .vimrc 文件中添加一行 set mouse=a 来自动将其应用于所有的 vim 窗口。你的 vimrc 文件可能位于 ~/ 目录下。 - Eduardo Barrera
你知道如何在Windows中使其工作吗? - Ayush
显示剩余2条评论

24

如果您使用 iTerm,则可以执行以下命令:

defaults write com.googlecode.iterm2 AlternateMouseScroll -bool true

这将启用鼠标滚动功能,而无需在您的.vimrc中添加任何内容。


3
非常感谢你,我已经寻找这个内容好几个小时了,而你的翻译帮助我更好地理解了它。 - Varun Chandak

4

2

我在使用Mac的终端时遇到了同样的问题。我认为这是一个终端的问题。一旦我升级到Lion,我就不会在vim中出现滚动问题。请考虑使用iTerm2。它将解决滚动问题并为您提供256个终端颜色。


0

当您的TERM设置为xterm而不是linux时,鼠标滚轮功能才能正常工作。请在.cshrc或.bashrc中设置“setenv TERM xterm”,然后它将起作用。


0

只是一个选项。我在OSX中错过了很多功能,这些功能在Linux中完全习惯了。最好的设置接近于使用iTerm2+MacVim

我错过了一些东西,并通过这种方式得到了回来:

  • Pos1+End,
  • PgUp+PgDown,
  • 鼠标支持,
  • 按预期滚动,
  • 华丽的i3-wm中可怕地错过的酷炫布局和直观的键盘移动,
  • 书呆子般的昏暗效果和
  • 松散的焦点(焦点跟随鼠标)。

不幸的是,我知道的任何终端都没有实现xorg最杰出的功能“middlemouse-clipboard”。嗯,正如所说的那样,它是一个xorg功能,可能永远不会被实现。

如果你正在为OS X使终端有用而努力,请不要忘记杰作homebrew


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