程式開發人員被字型陰已不是新聞,我小時候就狠摔過(延伸閱讀:陰險的Bug,沈重的一擊), 但十幾年後,身為資歷老鳥還會踩坑,就值得好好反省記上一筆。

今天開啟 Notepad++ 修改某段 Office 相容 HTML,範例程式正常,我照著改寫卻出錯,花半小時還查不出原因。 最後靠著一段一段將問題程式置換成範例程式的內容,總於查到關鍵:

乍看兩行程式碼沒什麼不同,但上面可以執行,下面會出錯。怒開 16 進位編輯器才恍然大悟 - 我又被字型給陰了。 倒數第三個字元是關鍵,上面是 1 下面是 l。

調查發現 Notepad++ 的字型是 Courier New,也算是我蠻愛的字型,等寬、字型優美,只是,1 跟 l 搞到這麼像是要逼死誰?

改用其他字型,例如:Visual Studio 的奧林匹克指定字型 - Consolas:

或是雅黑體:

1 跟 l 的差異都算明顯,不致於弄錯。仔細想想,涉及程式開發的軟體要調字型,我習慣會選 Consolas,不會挑 Courier New,應該不是我設定的。

然後我想起來了,幾個月前換電腦新裝 Notepad++ 7.7,Courier New 應該是它的預設字型。

爬文後心情有好一點,看來我不孤獨。Notepad++ 討論區也有人反應預設字型易造成字元混淆:

由討論推測,Notepad++ 應是從 7.5 版(2017 發行)起預設字型改用 Courier New (之前似乎是 Times New Roman)的, 兩年後被我踩到。

Notepad++ 表示:我佈這個局佈了兩年之久....

Courier New 比 Consolas 普及,是等寬字型的優先選項,Notepad++ 將其設成預設字型還算合情理。 跟 Notepad++ 強大功能相比,這只是小瑕疵,無損其威能。 下回新裝 Notepad++,我會記得加上 SOP - 將字型改成 Consolas。

結案。


Comments

# by Huang

按鍵距離差這麼多,又不是看別人打的。XD

# by Lupin

Try Source Code Pro :)

# by 卡比

真的一模一模,這個地雷必須要中

# by paicheng0111

寫程式必用Consolas +1

# by Null

Fixedsys +1

# by ALIEN.SUN

Notepad++有時候改寫CMD批次也是怪怪的,後來針對CMD系列我都使用Notepad2.exe

# by Frank Shawn

我也是剛把N++的自行改成慣用的consolas,但發現它的空白跟一般字元不等寬(在其他編輯器是等寬的),不知道大大有沒有遇到這問題?

# by Frank Shawn

抱歉,我嘗試照著大大最後一張圖從global styles的default style那邊去改, 空白的字元寬就正常了~ 之前是只有在C那邊一個一個換成consolas,可能是這樣會有遺漏吧。

# by 受字體設定困擾許久的初心者

原來以前的字型是times new roman,猛一看還真的跟印象中清晰銳利的字體一模一樣,沒想到是在7.5版本後變成稍微有點寬扁又模糊的courier new,想當初打開時還被如此的變化震驚了很長時間,但是周圍的人都沒感受到什麼變化,查找之後意外的發現中文圈內也有人感到不適應但都沒有下文,求解無果就只好硬著頭皮用下去,自此之後我一直都很緊張字型又會跑掉,所以還特別備份設定,當時真沒想到竟然是版本自帶,也沒想到外文圈會有相關的討論,時隔這麼多年竟然在重新尋找字型顯示bug的時候找到這篇文,算是解答了我長時間以來的困惑,雖然時至今日還是會有多開時字體大小跳掉需要強制共用才能解決的問題,不知先進是否有解,同時這也讓我想起不知哪個版本之後,繁中的翻譯開始變得生硬又艱澀,雖然知道原意但讀起來總是讓人感到不自在,不知notepad+的本地化是如何管理的

# by shawnho

換到8.5.7版...不確定是不是因為windows 更新或是npp更新造成中文字不等寬問題... 把Global styles/Default styles 中的字型換成 細明體或Cascadia Code 才能中文等寬, 並且 1個中文=2個英文字寬

Post a comment