gpt4 book ai didi

python - 串行 ctrl+a 转义序列

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:01 25 4
gpt4 key购买 nike

我正在使用 pyserial 创建一个串行应用程序。我正在寻找 CTRL+ACTRL+E 的 ASCII 或 ANSI 转义序列(转到开头和行尾)。我似乎无法在任何地方找到转义码。有谁知道列出代码的资源? CTRL+ACTRL+E 似乎是非常通用的光标到行首和光标到行尾线路控制键。我必须相信存在转义序列。

如有任何建议,我们将不胜感激!

最佳答案

无论是 ASCII 字符还是 ANSI 控制代码都没有真正定义一个叫做 CTRL+A 的东西。

但是,ASCII 控制字符 0-31(正式名称从 NUL 到 US)传统上映射为可打印字符 64-95 的“控制版本”。所以,0 是 ^@,1 是 ^A,2 是 ^B,等等。

ASCII 上的维基百科页面和 control character提供进一步的信息。

所以,^A 是 1,^E 是 5。


同时:

CTRL+A and CTRL+E seem to be pretty universal cursor to beginning of line and cursor to end of line control keys.

它们不是那么普遍。这些是“基本 emacs 控制键”的一部分,许多 Unix 终端仿真器和一些基于 Unix 的 GUI 应用程序(以及 libreadline CLI 编辑库和 Qt文本小部件)按照惯例支持。但是,尝试在 DOS 提示符或 Microsoft Word 中按 ^A,它不会转到行首。

并且,仅将 ^A 或 ^E 发送到与 ANSI 兼容的终端不一定会将光标移动到行的开头或结尾。要正确地做到这一点,您需要实际发送相应的 ANSI 控制序列。任何 ANSI 转义码列表,例如 Wikipedia's , 将向您展示可用的内容。

不幸的是,您尝试做的事情没有正确的答案。 ANSI 将整个 80x25(或其他)屏幕视为可访问的,并且不区分其中有内容的字符位置和空白的字符位置。因此,您不能移动到“行尾”,除非您指的是“第 79 列”。

而且,如果您要查找的是移动到第 0 列和第 79 列,使用 CHA 命令('\x1b[0G'​​'\x1b[79G')——但并不是所有的 ANSI 终端都支持它;特别是,DOS ANSI.SYS 和任何与它兼容的东西都会忽略它。

关于python - 串行 ctrl+a 转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21839451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com