许多终端仿真器(xterm、Konsole)支持双倍大小的字符。Ncurses 不支持这一点,据我所知,ncurses 不会打印转义字符(\033 将被取消转义并以明文形式打印)。
是否可以在 ncurses 应用程序中打印双倍大小的字符?
您所指的“双倍大小”字符功能由以下 ANSI 序列(在此处找到)设置:
ESC #3 DEC 双高线,上半部分 (DECDHL) ESC # 4 DEC 双高线,下半部分 (DECDHL)
该\e#3
属性使终端将字符集切换为仅包含每个字符的上半部分的字符集。同样,\e#4
切换到包含下半部分的字符集。通过这些一起使用,
echo -e "\e#3Foo\n\e#4Foo"
终端可以在两个单独的行上显示“双倍高度”文本。
据我所知,你是对的——ncurses 没有“实现”它们——可能是因为它们依赖于 DECTerminals 最初独有的专用字体集。
说到重点,这似乎是不可能的,因为 ncurses 没有这个特性的属性,尽管我承认我找不到任何直接说明它不可能的参考资料。也许具有疯狂 terminfo 技能的人可以解释为什么会(或不是)这种情况。