我正在浏览器中构建一个终端窗口(例如 ajaxterm),并且不知道要发送哪个转义序列到 ssh 隧道(通过打开paramiko.SSHClient().invoke_shell(term='linux')
)。
我找到了一个键盘记录器,并在终端中使用 $TERM == 'linux' 进行了尝试,但它返回ctrl+left
和left
(27,91,68) 的相同序列。
如果我在另一个终端中尝试键盘记录器(使用 $TERM == 'xterm'),我会得到代码(27、91、49、59、53、68)。但是这些代码不会从 SSH 通道生成预期的输出(这会将光标在普通的 linux shell 上向左移动一个单词)。即使我用 term='xterm' 开始 paramiko 也是如此。
知道我应该使用什么顺序吗?或者为什么上述顺序不起作用?
更新:我很乐意使用另一种终端类型(不是“linux”),但不幸的是pyte仅适用于 VTxxx 终端(我相信“linux”是类似 vt220 的终端 - 无论如何,它可以工作),所以 xterm 不起作用适当地。