ssh到gerrit sql不能用up箭头键来获取以前的命令

时间:2018-05-17 02:54:00

标签: command-line-interface gerrit

Gerrit服务器安装在运行Ubuntu的远程主机上。

我的主机正在运行Windows 10.我可以通过以下方式访问gsql:

ssh <gerrit host>:29418 gerrit gsql

我尝试了两个不同的终端:Ubuntu Bash&amp; Mingw64,他们都表现出来了 相同的结果。当我按向上箭头时,它显示^ [[A而不是之前的 查询。

Gerrit SQL shell

我可以通过简单的ssh进入同一个远程主机就可以使用向上箭头。

可能导致问题的任何想法?

1 个答案:

答案 0 :(得分:0)

键盘将事件发送到计算机。一个事件说“扫描代码nnn down”或“scan code nnn up”。在链的另一端,终端中运行的应用程序期望以字符序列的形式输入。

当您按A时,键盘会发送信息“扫描代码38向下”。控制台驱动程序查找其键映射并将其转换为“字符a”。

当您按下不会产生字符的键或组合键时,需要按字符对信息进行编码。一些键和键组合具有相应的控制字符,例如, Ctrl + A发送字符␁(字节值1),Return发送字符␍(Ctrl + M,字节值13)等。

大多数功能键没有相应的字符,而是发送一系列以␛(转义,字节值27)字符开头的字符。例如,键Up被转换为转义序列␛[A(三个字符:escape,open bracket,capital A)。

似乎“gerrit gsql”提示有点“哑”并且不理解大多数转义序列,所以它只是显示转义序列。 ␛字符没有字形,因此显示为^ [。 ^符号传统上用作控制字符的前缀,而escape是^ [因为它的字节值:它是[,减去64的字节值。