我有一个 C 语言程序,我想在终端中绘制颜色并移动光标等。目前,我只是使用 ANSI 转义码来执行此操作。 ANSI 是最现代、最流行/使用的标准吗?它是便携式的吗?未来支持 ANSI 的终端会更多还是更少?
我想说 ANSI 在未来一段时间内将具有相当可靠的可移植性。
但是,使用库可能会更高效,并且更能免受底层标准变化(例如 PC3270 的复兴)的影响。在Libraries部分下,here有一个巨大的列表。
Ncurses
似乎是一种主食,而且 notcurses
也有很多优点。
旧版终端仍然存在,但现在请尝试使用一个终端。 我拥有其中的几个。 不可避免地,您最终会运行
screen
或其他一些程序,从正在运行的程序的角度来看,它将其变成 ANSI 兼容终端。
是的,可以安全地假设到 2023 年所有终端都在一定程度上符合 ANSI 标准。 如果你正在编写类似文本编辑器的东西,而你确实在努力驱动终端,那么你可能会遇到实现之间细微差异的麻烦,在这种情况下,像 ncurses 这样的东西可能会有所帮助,但如果你只想使用粗体和斜体,给屏幕上色、清空之类的,然后就可以了——直接使用 ANSI 代码即可。