在方格上显示字符?

Ann*_*Fay 5 linux fonts bash vim fixed-width

如何在 vim 中将字符显示为正方形?字符本身不需要是方形的,但如果您要通过字符的所有中心点绘制网格,它应该形成方形网格。

我想这样做是因为我正在为Dwarf Fortress设计堡垒布局。游戏在正方形/立方体网格上进行。

phu*_*clv 5

在 Windows 上,conhost.exe(这是 cmd 和 PowerShell 使用的默认终端)默认有一些方形等宽字体,例如 8x8 字体,但我从未听说过 Linux 中的这种字体。我进行了搜索,找到了完全适合您的目的的方形字体

\n
\n

Square 是一种用于 Roguelike 游戏的 TTF 字体

\n

Roguelike 游戏完全由网格单元格中的文本组成,但问题是大多数等宽字体比宽度高很多,这意味着 Roguelike 游戏要么具有非方形单元格,要么具有方形单元格且字符不\xe2\x80 \x99t 占据了整个盒子,两者看起来都不美观。

\n

Square 的设计目的是使字符尽可能均匀地填充方形空间。它的灵感来自于日本文字总是均匀地适合一个盒子,无论它们的设计如何。它放弃了小写字符中典型的上升/下降,而是使小写字符看起来像大写字符的简化版本。

\n
\n

方形字体

\n

跨站点重复:

\n\n

我还发现了同一类别中的许多其他字体,尽管我没有机会测试它们

\n\n

方形字体示例

\n
\n

但是,如果您的文本仅限于小字符集(特别是 ASCII 21 到 7E 加上一些东亚字符),那么您可以直接使用全角形式,而不需要其他字体

\n

下面是一个小的 shell 脚本,用于执行从半角到全角的转换。要转换的字符串是从标准输入读取的

\n
halfwidth=\'!"#$%&\'\\\'\'()*+,-.\\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\xef\xbd\x9f\xef\xbd\xa0\xc2\xa2\xc2\xa3\xc2\xac\xc2\xaf\xc2\xa6\xc2\xa5\xe2\x82\xa9 \'\nfullwidth=\'\xef\xbc\x81\xef\xbc\x82\xef\xbc\x83\xef\xbc\x84\xef\xbc\x85\xef\xbc\x86\xef\xbc\x87\xef\xbc\x88\xef\xbc\x89\xef\xbc\x8a\xef\xbc\x8b\xef\xbc\x8c\xef\xbc\x8d\xef\xbc\x8e\xef\xbc\x8f\xef\xbc\x90\xef\xbc\x91\xef\xbc\x92\xef\xbc\x93\xef\xbc\x94\xef\xbc\x95\xef\xbc\x96\xef\xbc\x97\xef\xbc\x98\xef\xbc\x99\xef\xbc\x9a\xef\xbc\x9b\xef\xbc\x9c\xef\xbc\x9d\xef\xbc\x9e\xef\xbc\x9f\xef\xbc\xa0\xef\xbc\xa1\xef\xbc\xa2\xef\xbc\xa3\xef\xbc\xa4\xef\xbc\xa5\xef\xbc\xa6\xef\xbc\xa7\xef\xbc\xa8\xef\xbc\xa9\xef\xbc\xaa\xef\xbc\xab\xef\xbc\xac\xef\xbc\xad\xef\xbc\xae\xef\xbc\xaf\xef\xbc\xb0\xef\xbc\xb1\xef\xbc\xb2\xef\xbc\xb3\xef\xbc\xb4\xef\xbc\xb5\xef\xbc\xb6\xef\xbc\xb7\xef\xbc\xb8\xef\xbc\xb9\xef\xbc\xba\xef\xbc\xbb\xef\xbc\xbc\xef\xbc\xbd\xef\xbc\xbe\xef\xbc\xbf\xef\xbd\x80\xef\xbd\x81\xef\xbd\x82\xef\xbd\x83\xef\xbd\x84\xef\xbd\x85\xef\xbd\x86\xef\xbd\x87\xef\xbd\x88\xef\xbd\x89\xef\xbd\x8a\xef\xbd\x8b\xef\xbd\x8c\xef\xbd\x8d\xef\xbd\x8e\xef\xbd\x8f\xef\xbd\x90\xef\xbd\x91\xef\xbd\x92\xef\xbd\x93\xef\xbd\x94\xef\xbd\x95\xef\xbd\x96\xef\xbd\x97\xef\xbd\x98\xef\xbd\x99\xef\xbd\x9a\xef\xbd\x9b\xef\xbd\x9c\xef\xbd\x9d\xef\xbd\x9e\xef\xbd\x9f\xef\xbd\xa0\xef\xbf\xa0\xef\xbf\xa1\xef\xbf\xa2\xef\xbf\xa3\xef\xbf\xa4\xef\xbf\xa5\xef\xbf\xa6\xe3\x80\x80\'\nsed -e "y/$halfwidth/$fullwidth/"\n
Run Code Online (Sandbox Code Playgroud)\n

例子

\n
\n $ cat square.txt \n0123456789\n1-square 8\n2####text7\n3$$$$$$$$6\n4@@@@@@@@5\n5(正方形)4\n6 ~~~TEXT 3\n7>>>2\n8////\\\\\\\\1\n9876543210\n\n $ cat square.txt | sh fullwidth.sh \n\xef\xbc\x90\xef\xbc\x91\xef\xbc\x92\xef\xbc\x93\xef\xbc\x94\xef\xbc\x95\xef\xbc\x96\xef \xbc\x97\xef\xbc\x98\xef\xbc\x99\n\xef\xbc\x91\xef\xbc\x8d\xef\xbd\x93\xef\xbd\x91\xef\xbd\x95\xef \xbd\x81\xef\xbd\x92\xef\xbd\x85\xe3\x80\x80\xef\xbc\x98\n\xef\xbc\x92\xef\xbc\x83\xef\xbc\x83\xef \xbc\x83\xef\xbc\x83\xef\xbd\x94\xef\xbd\x85\xef\xbd\x98\xef\xbd\x94\xef\xbc\x97\n\xef\xbc\x93\xef \xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc\x84\xef\xbc \x96\n\xef\xbc\x94\xef\xbc\xa0\xef\xbc\xa0\xef\xbc\xa0\xef\xbc\xa0\xef\xbc\xa0\xef\xbc\xa0\xef\xbc \xa0\xef\xbc\xa0\xef\xbc\x95\n\xef\xbc\x95\xef\xbc\x88\xef\xbc\xb3\xef\xbc\xb1\xef\xbc\xb5\xef\xbc \xa1\xef\xbc\xb2\xef\xbc\xa5\xef\xbc\x89\xef\xbc\x94\n\xef\xbc\x96\xef\xbd\x9e\xef\xbd\x9e\xef\xbd \x9e\xef\xbc\xb4\xef\xbc\xa5\xef\xbc\xb8\xef\xbc\xb4\xe3\x80\x80\xef\xbc\x93\n\xef\xbc\x97\xef\xbc \x9c\xef\xbc\x9c\xef\xbc\x9c\xef\xbc\x9c\xef\xbc\x9e\xef\xbc\x9e\xef\xbc\x9e\xef\xbc\x9e\xef\xbc\x92 \n\xef\xbc\x98\xef\xbc\x8f\xef\xbc\x8f\xef\xbc\x8f\xef\xbc\x8f\xef\xbc\xbc\xef\xbc\xbc\xef\xbc\xbc \xef\xbc\xbc\xef\xbc\x91\n\xef\xbc\x99\xef\xbc\x98\xef\xbc\x97\xef\xbc\x96\xef\xbc\x95\xef\xbc\x94 \xef\xbc\x93\xef\xbc\x92\xef\xbc\x91\xef\xbc\x90\n
\n

由于字体的原因,在许多情况下结果可能不是完美的正方形,因此如果宽高比不符合您的要求,您可能仍然需要检查系统上是否有带有正方形全角字符的字体

\n


Red*_*ick 2

使用您最喜欢的字体编辑器从 Courier 创建方形等宽字体。在您的终端中使用它。

如果您缺乏字体编辑的耐心并且有魅力(或其他东西),您可以这样做。

内管向我建议了这一点,但也许它并不是真正的方形。