在OS X Yosemite的终端应用程序中,您现在可以使用鼠标在vim / less /中滚动。如何检测正在运行的程序是否支持这种滚动?
答案 0 :(得分:7)
想要支持滚动的程序向终端发送转义序列以启用鼠标输入,例如,\e[?1002h
用于报告按钮点击。然后,只要您单击鼠标,终端就会将控制代码发送回程序,告诉您单击了哪个按钮以及在哪里。单击按钮4和5会发送向上或向下滚动。
请参阅第29页的“鼠标跟踪”部分 XTerm Control Sequences文件。
在bash中尝试这个:
$ echo $'\e[?1002h'
$ hexdump -C
... click and scroll a bit, then hit enter...
^[[Ma7*^[[Ma7*^[[M`7*^[[M`7*^[[M`7*^[[M`7*^[[Ma7*^[[Ma7*^[[M`1.^[[M`1.
00000000 1b 5b 4d 61 37 2a 1b 5b 4d 61 37 2a 1b 5b 4d 60 |.[Ma7*.[Ma7*.[M`|
00000010 37 2a 1b 5b 4d 60 37 2a 1b 5b 4d 60 37 2a 1b 5b |7*.[M`7*.[M`7*.[|
00000020 4d 60 37 2a 1b 5b 4d 61 37 2a 1b 5b 4d 61 37 2a |M`7*.[Ma7*.[Ma7*|
^C
Returned 130 (SIGINT).
启动鼠标跟踪的程序 - 在这种情况下,bash-在标准输入上接收鼠标输入作为编码内容。
开源MouseTerm plugin已在Terminal.app中启用滚动十年。您可以查看其源代码以获取详细信息。
答案 1 :(得分:7)
Yosemite Terminal侦听Alternate Screen转义序列。如果您转到首选项→设置→键盘,您可以看到“滚动备用屏幕”选项。
有关xterm&#39替代屏幕功能的更多信息:
在VT102模式下,有一些转义序列可以激活和停用 备用屏幕缓冲区,其大小与显示区域相同 的窗口。激活后,将保存当前屏幕 替换为备用屏幕。保存的行滚动了 在恢复正常屏幕之前,窗口顶部将被禁用。该 xterm的termcap(5)条目允许可视化编辑器vi(1)切换到 备用屏幕,用于编辑和退出时恢复屏幕。