ANSI 标准对终端来说是可移植的吗?

问题描述 投票:0回答:3

我有一个 C 语言程序,我想在终端中绘制颜色并移动光标等。目前,我只是使用 ANSI 转义码来执行此操作。 ANSI 是最现代、最流行/使用的标准吗?它是便携式的吗?未来支持 ANSI 的终端会更多还是更少?

c terminal
3个回答
2
投票

现代终端模拟器(几乎是现在普通人会遇到的任何东西)都倾向于使用您可以在两个地方找到的文档:

微软的“控制台虚拟终端序列”

Thomas Dickey 的“XTerm 控制序列”

没有比这更权威的了。


1
投票

我想说 ANSI 在未来一段时间内将具有相当可靠的可移植性。

但是,使用库可能会更高效,并且更能免受底层标准变化(例如 PC3270 的复兴)的影响。在Libraries部分下,here有一个巨大的列表。

Ncurses
似乎是一种主食,而且
notcurses
也有很多优点。


0
投票

旧版终端仍然存在,但现在请尝试使用一个终端。 我拥有其中的几个。 不可避免地,您最终会运行

screen
或其他一些程序,从正在运行的程序的角度来看,它将其变成 ANSI 兼容终端。

是的,可以安全地假设到 2023 年所有终端都在一定程度上符合 ANSI 标准。 如果你正在编写类似文本编辑器的东西,而你确实在努力驱动终端,那么你可能会遇到实现之间细微差异的麻烦,在这种情况下,像 ncurses 这样的东西可能会有所帮助,但如果你只想使用粗体和斜体,给屏幕上色、清空之类的,然后就可以了——直接使用 ANSI 代码即可。

© www.soinside.com 2019 - 2024. All rights reserved.