
如何在 vim 中將字元顯示為正方形?字元本身不需要是正方形的,但是如果您要透過字元的所有中心點繪製網格,它應該會形成一個正方形網格。
我想這樣做,因為我正在設計一個堡壘佈局矮人要塞。遊戲在正方形/立方體網格上進行。
答案1
在 Windows 上,conhost.exe(這是 cmd 和 PowerShell 使用的預設終端)預設有一些方形等寬字體,例如 8x8 字體,但我從未聽說過 Linux 中有這種字體。我進行了搜索並找到了方塊字體是專為您的目的而製作
Square 是一種用於 Roguelike 遊戲的 TTF 字體
Roguelike 遊戲完全由文字組成網格單元,但問題是大多數等寬字體的高度遠大於寬度,這意味著 Roguelike 遊戲要么具有非方形單元,要么具有方形單元並且角色不佔據整個盒子,這兩種情況看起來都不太美觀。
Square 的設計目的是讓字元盡可能均勻地填滿方形空間。它的靈感來自於日本文字總是均勻地適合一個盒子,無論它們的設計如何。它放棄了小寫字元中典型的上升/下降,而是使小寫字元看起來像大寫字元的簡化版本。
跨站點重複:
我還發現了同一類別中的許多其他字體,儘管我沒有機會測試它們
- http://www.1001fonts.com/monospaced+square-fonts.html
- http://www.fontspace.com/category/mono,monospace,square
- http://www.fontspace.com/category/mono,square,monospaced
但是,如果您的文字僅限於小字元集(特別是 ASCII 21 到 7E 加上一些東亞字元)那麼你可以使用全角表格直接使用,無需其他字體
下面是一個小的 shell 腳本,用於執行從半角到全角的轉換。要轉換的字串是從標準輸入讀取的
halfwidth='!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬¯¦¥₩ '
fullwidth='!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬ ̄¦¥₩ '
sed -e "y/$halfwidth/$fullwidth/"
例子
$貓方.txt 0123456789 1-方8 2####文本7 3$$$$$$$$6 4@@@@@@@@5 5(正方形)4 6~~~文字3 7>>>2 8////\\\\1 9876543210 $ 貓方塊.txt | sh 全角.sh 0123456789 1-第8節 2####正文7 3$$$$$$$$6 4@@@@@@@@5 5(SQUARE)4 6~~~TEXT 3 7<<<<>>>>2 8////\\\\1 9876543210
由於字體的原因,在許多情況下結果可能不是完美的正方形,因此如果寬高比不符合您的要求,您可能仍然需要檢查系統上是否有帶有正方形全角字元的字體
答案2
答案3
我正在尋找一種可以與python 二維碼產生器。該函式庫似乎假定精確的高度:寬度字元比為 8:7,因此上面的方形字體實際上產生的 QR 碼寬度大於高度。在我的 Mac 上,14 或 28 點大小的 Andale Mono 字體可產生完美的方形 QR 碼。在裡面iTerm如下圖所示窗口,例如二維碼正好是168:168。