从Mac到Linux的带ssh的Vim和​​鼠标


9

我当然知道可以在Mac上的Linux计算机上的远程会话中使Vim上的鼠标工作,但是我还不知道该怎么做。

每日vim给出了使其正常工作的提示,但是,例如,如果我尝试设置'mac-ansi',则会收到一条错误消息,提示我只能指定以buildin_开头的值(riscos,beos-ansi等)。我试过使用ssh -X和结合使用set mouse=aset term=builtin_anso例如,但结合使用或不结合使用都没有成功。

我正在使用Snow Leopard,并尝试在带有vim 7.1.314的Debian机器上使用鼠标。我看过文档,但是无法正常工作。有小费吗?


关于该'term'选项,有关日常vim发布的建议绝对是错误的。在极少数情况下,应该在Vim中更改该选项,而不是使终端为$ TERM设置正确的值。Spectral的评论是正确的。
jamessan 2010年

Answers:


15

我认为Terminal.app不支持使鼠标工作所需的xterm鼠标报告。有几种方法可以使终端具有鼠标报告功能。

  • iTerm是支持鼠标报告的替代终端程序
  • MouseTerm是一种可将鼠标报告添加到Terminal.app的黑客,但我尚未尝试过,也不知道它的工作原理如何
  • 您还可以安装X11并使用实际的xterm

一旦您掌握了其中一项,:set mouse=a(您可能还需要:set term=xterm),您就应该做生意。


1
MouseTerm解决了该问题。它们当前支持鼠标单击和滚动事件。我刚刚安装了SIMBL + MouseTerm,并在远程计算机上的Vim中运行了mouse = a设置,它可以正常工作。
乔纳坦·利特克

1
在vim中为:set mouse = a +1。由于Putty在Windows上运行,因此不需要其他配置。我不敢相信我已经使用键盘这么长时间了。
Cheesington

6

要用鼠标使用Terminal.app,您需要使用Alt键单击而不是单击。
例如,在vim set mouse = a中,然后使用Alt键单击以定位光标。

尽管它不允许调整(vim)窗口的大小,但可以通过ssh进行工作。您还将失去从其他窗口剪切并粘贴到终端窗口中的能力。


1

我没有答案,但是我可以分享在我几个月的寻找答案中学到的知识。我是ssh上vim和GNU屏幕的重度用户。有点讽刺的是,我发誓这些程序,因为我可以不用鼠标远程使用他们,但我已经几乎放弃了OS X,因为它并没有提供一种简单的方法,我可以远程使用它们鼠标。

无论如何,这就是我的想法:

  • 可以使在X11.app下运行的xterm报告鼠标事件并根据需要工作。不幸的是,xterm缺少许多iTerm和Terminal.app的功能。做一些简单的更改xterm中的字体的操作需要一点黑魔法。
  • 据称iTerm可以容纳所需的功能,但我从未使它起作用。几个月前,当我跳到Terminal.app时,iTerm也遇到了主要的性能问题。屏幕更新发生的很慢,而坐在那里什么也不做将占用25%的CPU。
  • 我实际上尝试使用在VMWare下运行的精简Ubuntu VM作为终端应用程序。我将其设置为引导进入全屏Gnome终端,并使用fluxbox作为窗口管理器。我放弃了该解决方案,因为它不能很好地配合Spaces和运行VMWare的开销。

现在,我从来没有离开过一个真正的Linux机器,偶尔会通过Terminal.app使用vim来保持诚实-如果我不记得导航键,我不妨使用Visual Studio。


0

除了杰夫的答案,这是另一个可能的解决方案:

MacVim + NetRW适用于vim

MacVim内置了鼠标支持,而NetRW是vim模块,允许使用进行远程编辑vim scp://host/path/to/file。因此,只需启动MacVim并连接到文件,对其进行编辑并远程保存。

您可能还对调整GUI感兴趣,请参阅我在SO上的相关问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.