程序员使用大量的符号,通常用几个字符表示一个编码。对于人脑来说,像->、<=或:=这样的序列是单一的逻辑标记,即使它们在屏幕上需要两到三个字符。你的眼睛要多花费些能量来扫描、解析并将多个字符连接成一个单一的逻辑符号。理想情况下,所有的编程语言都应该为运算符设计成熟的Unicode符号,但现在还不是这样的。
所以有一些免费的等宽字体,比如Jetbrains Mono或Fira Code,包含常见的编程多字符组合的连字符。这只是一个字体渲染功能:底层代码仍然与ASCII兼容。这有助于更快地阅读和理解代码。对于一些经常出现的序列,如..或//,连接词还能修改间距,使其更紧凑。
下面这张图显示了使用连字功能(左边)和不使用连字功能(右边)的区别:
而使用这个字体的连字功能,需要应用程序配合。
比如支持私用连字功能的文本编辑器或开发环境包括:Notepad++、Eclipse、Visual Studio、Visual Studio Code、CLion、NetBeans和QTCreator等。
----------------------------
下面以Visual Studio Code为例。
首先要下载带连字功能的字体,这里选择的时Jetbrains Mono Font。
搜索JetBrains Mono, 下载字体,然后安装,里面很多类型,比如粗体、斜体等,可以先安装个普通regular版本或者选择都安装。
JetBrains Mono: A free and open source typeface for developers | JetBrains: Developer Tools for Professionals and Teamshttps://www.jetbrains.com/lp/mono/
关于这个字体的介绍:
JetBrains表示:在当今的大部分时间里,我们作为开发人员都在看代码。我们一直在寻找最佳字体,以使我们更容易在屏幕上查看文本。
但是,许多流行字体中的逻辑并不总是考虑到通读代码和阅读书本之间的区别。
我们的眼睛以非常不同的方式沿代码移动,通常必须垂直移动和水平移动,这与阅读书籍不同,因为它们总是沿同一方向沿文本滑动。
因此,在使用JetBrains Mono进行开发时,除其他外,重点研究了在长时间使用代码期间可能导致眼睛疲劳的问题。
我们考虑了字母的大小和形状等问题;它们之间的空间量,自然以等宽字体设计的平衡;一些看起来不必要的细节和符号之间不清楚的区别,例如(l 和 I);还要和开发字体时的编程连字等。
字体安装完成,我们来设置VS Code。
先打开设定。
在设定里选择Font,然后点击使用JSON编辑。
然后在最后输入:
"editor.fontFamily": "JetBrains Mono",
"editor.fontSize": 13,
"editor.fontLigatures": true
这时,在文件编辑窗口中输入:
if(a>=b)就会变成if(a≧b)
在上面的JSON设置文本中,还有很多其他选项可用:
"editor.fontFamily": "'JetBrains Mono', Consolas, 'Courier New', monospace", // Font Family
"editor.fontSize": 11.3, // Font Size
"editor.fontWeight": "bold", // Font Weight
"editor.fontLigatures": true, // Font ligatures
"editor.letterSpacing": 0.4, // Set letter spacing
"editor.smoothScrolling": true, // Enable smooth scrolling in the editor
---------------------------------------
使用Notepad++设置连字功能。
官方并不支持连接词, 所以先通过插件管理器安装LuaScript,安装后重启APP。
打开Plugins > LuaScript > Edit Startup Script来编辑LuaScript启动文件,并添加以下代码。
editor1.Technology = SC_TECHNOLOGY_DIRECTWRITE
editor2.Technology = SC_TECHNOLOGY_DIRECTWRITE
然后进入设置项:Settings > Style Configurator > Global Styles > Global Override。
在字体选择中,改为支持连字功能的字体,比如Jetbrains Mono或者Fira Code。
然后勾选“启用全局字体”(Enable global font)。
重启Notepad++,新建文本中输入“>=” 就会变成“≥”。
----------------------------------------
在我们编程中,一般都建议使用等宽字体,这样代码编辑和阅读起来都比较方便。
比如courier new、monospace、JetBrains Mono和Consolas都是我们常用的等宽字体。
在编程中使用的话,字体显示的I、L、0、O这几个字母也要方便区分。
而上面介绍的连字功能,也是对于程序员来说,让代码更简洁的一个特性。
前面设置的editor.fontLigatures,就是指这个。
具有连字功能的字体包括但不限于:
Fira Code 和 JetBrains Mono。
而我经常使用的(在Source Insight中)Consolas字体就是不带连字功能的。
下面是一些程序员编程常用的字体,有兴趣可以网上下载下来使用:
Consolas: Consolas 是 Microsoft Visual Studio 的默认字体,随 Windows 一起提供。
Source Code Pro: Source Code Pro 由 Adobe 设计。整体而言,这种字体看起来比其他字体更清晰。
courier new
JetBrains Mono: a typeface for developers.
Fira Code:free monospaced font with programming ligatures.
iosevka
Monoid :open source coding font.
Hasklig (这个是Source Code Pro的连字版本)
MonoLisa : font follows function.
Droid Sans Mono: an open-source sans-serif font.
monospace
参考:
According to JetBrains mono, firacode, source code pro and Consolas, which is your dish? | Develop Paperhttps://developpaper.com/according-to-jetbrains-mono-firacode-source-code-pro-and-consolas-which-is-your-dish/
5 monospaced fonts with cool coding ligatures | Better Web Typehttps://betterwebtype.com/articles/2020/02/13/5-monospaced-fonts-with-cool-coding-ligatures/
6 BEST Fonts for Programming in 2021 | Bloghttps://braydoncoyer.dev/blog/6-best-fonts-for-programming-in-2021/
https://github.com/i-tu/Hasklighttps://github.com/i-tu/Hasklig
https://github.com/JetBrains/JetBrainsMono/https://github.com/JetBrains/JetBrainsMono/
Idea公司真牛逼,发行最适合程序员编程字体~|java|编辑器|编程语言|代码_网易订阅https://www.163.com/dy/article/FVNKTH380531A3HQ.html
https://github.com/tonsky/FiraCodehttps://github.com/tonsky/FiraCode