【发布时间】:2017-10-08 05:56:58
【问题描述】:
在我的 xterm.js 终端上,我有 touchmove 事件来通过滑动发送光标键,并通过滑动左右边缘来滚动/滚轮(对于终端“应用程序模式”)。光标键滑动效果很好,但我似乎找不到鼠标滚轮或滚动的有效代码。现在我使用两个或四个相反方向的光标键代码来模拟边缘上的滚轮/滚动,这没关系,但不是我想要的行为。它应该逐行滚动,仅垂直移动文本,而不是光标。
我正在寻找的行为示例是适用于 Android 的 Termux 终端应用程序,它在“应用程序模式”中向上或向下滑动时会发送鼠标滚轮 xterm/ansi 代码。详情...
测试设置是 Bash 中的 Midnight Commander,使用 xterm.js 和 Termux、'cat -A' 或 'sed -n l' 来获取非打印文件的视觉效果。
在 Termux 中,通过 ssh 连接到安装了 MC 的服务器。运行“mc”。通过关闭wifi或其他方法突然断开连接。运行“cat -A”或“sed -n l”。上下滑动。您应该获得鼠标滚轮“ANSI”代码的符号(实际上显然是 xterm 协议)。像这些:
^[[
我的理解是这应该分别表示“\x1b[
我浏览了大量关于滚轮或滚动的 ANSI 和 Xterm 代码的文档,但似乎找不到任何有效的方法。
我在这里缺少什么?鳄鱼括号是文字吗?它是否象征着别的东西?照原样,我没有从 xterm.js 得到明显的反应。把它拿出来,每次事件触发时我都会打印出剩余的代码。
我还尝试了从多种终端类型进行滚动、前进/负行索引/LF 的各种序列,但到目前为止,在 Midnight Commander 或其他使用“应用程序模式”或“备用屏幕缓冲区”的实用程序中,没有一个能产生滚动.
【问题讨论】: