是否可以使用键盘将控制序列发送到终端仿真器

是否可以使用键盘将控制序列发送到终端仿真器

如果您echo -e '\eZ'在 xterm 中运行的 shell 中键入并按回车键,您将看到终端仿真器打印出晦涩的代码1;2c。这似乎表明 xterm 解释 VT100 控制序列\eZESC Z返回终端 ID)并相应地执行操作。

现在,如果您ESC Z按同一个控制台,则不会发生任何事情。这是否意味着无法直接使用键盘发送控制字符?

我不确定这里发生了什么,因为按CTRL s(控制流) 确实会停止控制台输出,直到您按CTRL q。那么为什么CTRL s/q有效而不有效呢ESC Z

答案1

VT100 对发送给它们的字符序列做出响应:输出。所以回显字符是有效的,因为终端将其视为输出。键入字符即为输入;仅当接收计算机回显字符时,终端才会响应。您的典型 shell 不会回显 ESC,而是将 ESC 解释为某些交互式输入命令的前缀。运行cat并输入 ESC Z RETURN,您将看到通常的 VT100 响应。

答案2

另外,您通常可以先按键盘上的 CTL-V 告诉终端您希望直接传递 ESC 而不是使用它。当然,你仍然需要让它回显给你,所以在这种情况下不一定有帮助,但是当你在 VIM 中编辑文件并想要包含转义码时,这是一种方便的方法这样做。

相关内容