在我的 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 协议)。像这些:
^[[<65;82;14M ^[[<64;83;12M
我的理解是这应该分别表示“\x1b[<65;82;14M”和“\x1b[<64;83;12M”,第二个和第三个数字是X,Y'指针'坐标(在'人物')。但即使是剪切和粘贴,用文字 Escape 替换 '^[' 似乎也不起作用。
我浏览了大量关于轮子或滚动条的 ANSI 和 Xterm 代码的文档,但似乎找不到任何有效的方法。
我在这里想念什么?鳄鱼括号是文字吗?它是否象征着别的东西?照原样,我没有从 xterm.js 得到明显的反应。把它拿出来,每次事件触发时,我都会打印出剩余的代码。
我还尝试了来自多种终端类型的滚动、前进/负行索引/LF 的各种序列,但到目前为止,没有一个在 Midnight Commander 或其他使用“应用程序模式”或“备用屏幕缓冲区”的实用程序中产生滚动。