重写 ANSI CUB/CUF 操作代码
在 ANSI 转义序列中,CUB 和 CUF 分别表示向左和向右移动光标。但是,它们的行为在不同的终端上可能会有所不同,从而导致代码错误。为了解决这个问题,我们需要使用更可靠的 ANSI 走动方式来代替 CUB/CUF 操作。
例如,假设我们要在终端上将光标向右移动三个位置。使用 ANSI 走动方式,我们可以使用以下代码:
printf("\033[3C");
这将使光标向右移动三个位置。同样的,向左移动也可以使用 ANSI 走动方式:
printf("\033[3D");
这两个操作可以相互结合,从而实现更复杂的光标移动。这些 ANSI 走动方式的特定行为已经在 ANSI 标准中明确定义,因此在任何终端上都应该保持一致。