【发布时间】:2011-10-14 12:38:29
【问题描述】:
我正在浏览器中构建一个终端窗口(例如 ajaxterm),但不知道将哪个转义序列发送到 ssh 隧道(通过 paramiko.SSHClient().invoke_shell(term='linux') 打开)。
我找到了一个key logger 并在终端中使用 $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 不能正常工作。
【问题讨论】:
-
一个典型的默认 readline 配置(bash 使用 readline)有
Alt-B表示 backward-word。 terminfo 甚至没有Ctrl-←的条目。 -
但它可以在 xterm 控制台上运行...您能否详细介绍一下 terminfo,最好是在答案中?
-
Linux 控制台甚至没有接近到 vt220。它是(功能较弱的)vt100 的子集。此问题的每个答案都至少有一个错误。
标签: linux terminal keycode xterm vt100