‹ 指南

字型連字 v26.5.1+

-> != => 畫成字型為它們設計的那一個符號,每個字元的欄位一格不動。

需要 Term v26.5.1 或更新版本。

撰寫於

有甚麼不同

寫程式用的字型大多內建連字:-> 畫成一個箭頭,!= 畫成帶斜線的等號,>= 畫成真正的 ≥。Term 以前逐個字元單獨繪製,字型裡的連字從來顯示不出來。開啟之後就看得到了。

關閉 Iosevka Term 下的終端機截圖:幾行程式碼裡的 ->、!=、>=、=>、===、<=、|>、-->、==>、<=> 都是分開的字元。
關閉:每個字元單獨繪製,和輸入的一模一樣。
開啟 同樣幾行開啟連字後:-> 是一個箭頭,!= 是帶斜線的等號,還有 ≥、≤、雙箭頭 => 和三橫 ===。
開啟:同樣的幾行、同一部手機、同一款字型。每個運算子成了一個符號,而且甚麼都沒有移位,每個字元仍在自己那一欄。

變的只是字元的畫法,文字本身不動:-> 仍是兩個字元,游標照樣一個字元一個字元地走過去,複製出來還是 ->,按欄對齊的程式看到的和以前完全一樣。

開啟方法

設定 → 終端機 → 字型連字。 開關即時生效,所有開啟的分頁都會跟著變。預設是關閉的,因為不少人更願意看到自己打的原樣字元。

設定 → 終端機:終端字體為 Iosevka Term,終端字號 11pt,字型連字開關已開啟。
設定 · 終端機。 開關就在字號下面,只在帶連字的字型裡才有效果。截圖為英文介面。

字型清單裡有四款帶連字:Iosevka Term(內建,也是預設字型),以及可以在 終端字體 裡下載的 JetBrains Mono、Fira Code 和 Cascadia Code。其他字型沒有連字可顯示,開啟開關後照舊繪製。Monaspace Neon 的連字放在可選的樣式集裡,Term 不會啟用。

每款字型畫法不同

連字是一種設計,不是統一規則,所以同一行在不同字型裡各有樣子。

同一行運算子在四款字型裡各佔一行:Cascadia Code、JetBrains Mono、Fira Code、Iosevka Term。
由上至下:Cascadia Code、JetBrains Mono、Fira Code、Iosevka Term。同一行 a->b != c => d === e <= f >= g |> h --> ==> <=> :: www,箭頭和橫線隨字型變化;www 保持字母(見下文)。

會不會變慢

不會有感覺得到的差別。Term 只處理兩個或以上相連的符號,一般文字、ls 輸出這類內容完全略過這一步。每一段只計算一次並記下結果,捲回去看同一段程式碼不會多花工夫。我們在手機上實測,滿屏運算子捲動時,開關開啟和關閉一樣流暢。

甚麼時候會拆開

有幾處會特意顯示原樣字元。

游標在 = 上 shell 提示符後輸入了 [ "$a" != "$b" ],游標停在 = 上:!= 顯示為兩個字元。
游標移開後 同一行,游標在行尾:!= 顯示為一個帶斜線的等號。
游標所在處的運算子顯示為你正在編輯的原樣字元,游標一移開又會合上。

顏色一變就拆開

運算子的兩半顏色不同時,例如語法高亮把 - 和 > 標成不同顏色,它們保持兩個字元,顏色不會滲到旁邊。

只連符號,不連字母

Term 只合併由標點組成的運算子。由字母組成的連字,例如 Fira Code 的 www 和 0x,保持為字母;Monaspace 按字母寬度調整的「texture healing」也不做。

更多關於終端機字型:看得清的中文粗體 · 文字與表情顯示