Mac OS X Terminal:鼠标支持?


75

是否有本机选项(即,无需安装额外的软件/软件包/插件)来在终端应用程序中启用鼠标支持?

实际上,我在vim该选项上使用了很多set mouse=a(激活鼠标功能)。

但是,似乎Terminal不支持xterm的所有功能。

(经过一番搜索之后)Terminal曾经有鼠标支持,但是我想知道它去了哪里。

注意:我真的想在终端中支持鼠标,不仅限于vim,所以请不要建议MacVim:]


xterm支持终端不支持什么?高光复制和中间粘贴?
伊格纳西奥·巴斯克斯

鼠标报告。这是真正的鼠标支持。据我所知,高光复制,中间粘贴等与终端无关。

2
终端相关的突出显示和中间粘贴的副本-终端不执行这些操作-您可以为那些用户尝试iTerm
user151019 2010年

@Mark:我检查并喜欢它。尽管Terminal处理更好的粗体字符。还是谢谢你。

2
@Arjan:某些交互式CLI应用程序支持鼠标;例如,将文本光标定位在中vim
ELLIOTTCABLE

Answers:


104

我找到了答案!

一位朋友告诉我这把戏,这很容易让我感到羞耻。

只需按alt键,然后单击即可!(具有先前在vim中激活的鼠标支持)


OSX 10.11 El Capita的更新

请参阅克里斯·佩奇的答案。


11
我是一个半世纪以来一直是OS X的高级用户,但我从来都不知道。我印象深刻。我希望我能给你一百票而不是一票。
ELLIOTTCABLE

4
反正禁用要求使用alt
philfreo

8
无论如何对我来说都不一样。我经常单击一个字符,然后光标停在其他地方,有点靠近它。它也不适用于在vim中切换选项卡。在tmux中切换窗口似乎也不太好用。
andyortlieb

1
@andyortlieb:这就是为什么我搬到iTerm2的原因。
avetis.kazarian 2012年

2
对我没有帮助。
Mike Graf

23

从OS X 10.11 El Capitan开始,终端支持鼠标报告。

请注意,支持鼠标报告的程序必须通过转义序列启用它,并且大多数支持鼠标报告的程序必须配置为启用它。例如,在Vim中,您必须执行set mouse=a(通常在~/.vimrc文件中)。

终端支持报告三个鼠标按钮和一个滚轮。要模拟具有两键设备的三键按下,可以使用Command-Right-Click。(在关闭“鼠标报告”时,右键单击命令还会执行“ 编辑”>“粘贴选择”,因此无论您是否使用鼠标报告,“中键单击”都将粘贴最近选择的文本。)

启用“鼠标报告”后,Option ⌥修饰键会映射到Meta以进行单击和滚动,并且不受“使用选项用作Meta键”键盘首选项的影响,该首选项仅适用于键盘输入。

要暂时绕过鼠标报告并与终端视图进行交互,请Fn在单击或滚动时按修饰键。还有一个“ 视图”>“允许鼠标报告”(⌘R)菜单项,可用于较长时间绕过鼠标报告,或者如果修改键不可用。

请注意,启用后,鼠标报告会取代终端的现有Option-Click行为(发送箭头键输入以移动光标)和“滚动替代屏幕”行为。此外,新的“ 允许鼠标报告”菜单项和Fn修饰符也适用于“滚动备用屏幕”,以使您暂时跳过此行为。


“允许鼠标报告”是我的答案。iTerm2具有此功能,但我只想使用内置的终端应用程序来实现其轻量级功能。

@Kay:很高兴您喜欢它,但是要明确地说,“允许鼠标报告”菜单项没有打开“鼠标报告”。启用“鼠标报告”后,它只是让您临时与终端视图进行交互而不是将鼠标输入发送到远程程序的命令。程序通过将控制序列发送到终端来启用鼠标报告。
克里斯·佩奇

12

作为在OS X Terminal中使用Alt单击来在vi中设置光标的一种替代方法,我建议使用iTerm 2:

我希望在Terminal vi(Mac OS X 10.7 Lion)中支持鼠标,但是不支持使用滚轮滚动。我最终从终端切换到了iTerm 2,后者支持vi滚轮滚动,而您无需按住alt来设置光标。

如果您不使用Lion's Terminal应用程序中的某些更高级的功能,则您可能会对iTerm 2感到满意。

编辑:要在使用iTerm 2时在Vim中启用鼠标支持,请将以下行添加到.vimrc中:

:set mouse=a

你怎么可以滚动下来使用鼠标滚轮?它只是在屏幕缓冲区,您可以通过禁用使用使用备用屏幕缓冲区,例如在VIM得到在Terminal.app set t_ti= t_te=在你的~/.vimrc
丹尼尔·贝克

我确实需要:set mouse=a在.vimrc中进行配置-这是在Vim中启用鼠标支持的正常方法,但是看来Terminal.app占用了鼠标输入。但是,在iTerm2.app中,使用滚轮在文本文件中上下滚动似乎可以完美地工作。
史蒂夫HHH

在MacOS Mojave(10.14)上,使用OSX终端在vim中使用鼠标没有问题。
gagarine

1

似乎在OS X 10.4(我不确定大约是10.5)上,您可以启用鼠标支持。打开终端,然后单击窗口设置。从下拉列表中单击“仿真”,然后选中“单击以定位光标”选项。


1
实际上,在终端首选项中的10.5中没有“窗口设置”之类的东西,在10.6中也没有。您可以在“窗口”选项卡中更改背景颜色,滚动大小,标题和窗口大小。

1
那么它只能在10.4上...

1
这不完全是鼠标支持。这将允许您选择单击终端的一部分,然后Terminal.app将计算需要多少行上/下/左/右字符才能将光标移到那里,然后键入它们。非常有用,但不是OP所不希望的。
乔什

1

请注意,Mac OS X除Terminal.app外还具有xterm。从您的问题中我无法告诉您您是否知道这一点。但是,如果您安装了X11软件包,则可以启动xterm窗口,并且鼠标支持也可以正常工作。


0

对于那些想要在Mac OS X终端中提供体面的鼠标支持的用户来说,MouseTerm似乎是一个完美的SIMBL插件。截至2013年5月,最新版本(2011年7月发布的1.0b1)声明已在OS X的标准终端应用程序中添加以下功能:

  • 鼠标按钮报告。
  • 鼠标滚轮报告。
  • 模拟鼠标滚轮滚动浏览类似的程序(即,任何使用应用程序光标键模式的全屏程序)。
  • 终端配置文件集成(带有首选项对话框)。

我正在使用tmux和vim,它不仅允许我单击(没有选项键!),而且还可以通过很少的配置在其中滚动和拖动:例如,:set mouse=a对于vim和tmux set-window-option mode-mouse on。切换鼠标报告很容易(使用单个组合键⇧⌘M,或从Shell菜单中进行切换),因此安装它不会有任何损失。

(注意:不过,在tmux复制模式下单击/拖动并没有按我预期的那样工作。)


另一个警告-我注意到登录后首次启动Terminal后,直到我退出Terminal并再次启动它,鼠标支持才完全起作用。
2013年

@Michael:您的症状听起来像旧的SIMBL Issue 13一样。更新SIMBL可能会解决该问题。(0.9.9或0.9.9b)
netj

尝试0.9.9,没有用。尝试在注释#23中使用AppleScript,得到“预期行尾但找到了标识符”(将“ Snow Leopard”更改为“ Lion”,但我正在运行Lion ...)
2013年

还尝试了0.9.9b(为Lion补丁),但这也无法解决。仍然必须重新启动终端才能接受鼠标事件。
2013年

0

您可以至少在Terminal 2.4(OS X 10.9.3)中的高级首选项中设置xterm仿真。这为我启用了适当的鼠标支持。


它不起作用(请确保使用vim和tmux进行测试)。
avetis.kazarian 2014年
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.