为什么终端以固定宽度块呈现

为什么终端以固定宽度块呈现

我想了解终端是如何工作的。我正在研究 Netbeans 终端插件的实现。我意识到这可能不是理想的候选人,但我的 CPP 技能非常有限。所以我想我应该从我知道的事情开始。

Netbeans 终端似乎假设字符是一个块宽,或者至少字符宽度是块宽度的倍数。 (这里的块只是一个具有固定宽度和高度的矩形)。如果我没有完全错的话,Gnome Terminal 和 Konsole 的工作方式类似。不用说,这与某些字体有关,特别是印度字体,我感兴趣的字体。虽然 Netbeans 以这种方式实现的原因可能是特定于实现的,但我真正关心的问题是为什么终端通常以这种方式实现。

我不知道从哪里开始,所以你建议的任何阅读资源都会对我有很大帮助。我确实通读了 TTY demystified,但这并没有深入研究角色渲染细节。

答案1

Netbeans 终端插件是不是一个终端,它是一个终端模拟器,它模拟终端的工作方式和外观。终端是基于字符的,而不是图形的,因此它们使用固定宽度的字符,而不是渲染的字体。某些终端仿真器确实能够允许您使用可变宽度字体,但通常只是系统实际拥有的一组选定的字体。对于印度字体,这可能是一个问题,一些模拟器可能允许使用它们,但我不知道是哪一个(如果有的话)。如今,终端仿真器通常用于计算机控制和编程工作,而且无论如何,固定宽度效果最好,因此几乎没有动力去改变事情。

您可能已经注意到,大多数文本编辑器也使用等宽字体。是的,它们通常可以配置为使用可变间距字体,但不是默认字体。文字处理器 OTOH 默认使用渲染字体,因为这通常是用户想要打印的字体。你的操作系统的 GUI 也使用好的 GUI,因为这对人们来说更容易阅读。甚至您的浏览器也可能显示渲染的字体。但任何标记为的内容code仍然会变成等宽字体。

因为当你看到清晰排列的固定宽度字符时,编程变得容易得多,而且人们已经习惯了这一点,所以通常进行编码的环境也将默认为等宽字体。例如,如果您的浏览器中有任何开发人员类型扩展,它们可能会以等宽字体显示所有内容。如果您右键单击此页面并选择“查看源代码”,浏览器将打开一个页面/窗口/选项卡,其中源代码采用等宽字体。

作为额外说明,即使在今天,大多数真正的终端仍然只能显示单一字体(当然是等宽字体),并且通常甚至无法调整其大小。

相关内容