JetBrains 推出编程字体 Mono:开源免费可商用、提供更好的阅读体验
JetBrains 推出了一款名为 "Mono" 的字体。按照官方的说法,Mono 是专为开发者打造的编程字体,希望借此提升他们在查阅代码时的体验。
JetBrains 还解释了他们打造 Mono 的缘由。因为开发者大部分时间都在查阅代码,并且他们也会花时间寻找一款适合自己的“最佳”字体来获得最好的阅读体验。但 JetBrains 认为这些“网红”编程字体大多数没有充分考虑到通读代码和普通阅读之间的区别,从而导致开发者很容易眼干眼涩眼疲劳……为此他们决定打造一种能让每个人都可以更轻松使用代码的字体。
查阅代码时,开发者的目光在屏幕上随处地快速扫过(眼睛需要随时沿垂直和水平方向移动),所以眼睛十分容易疲劳,而普通阅读时,眼睛通常是沿着同一方向移动,相对来说就更轻松。因此,在设计 Mono 字体之初,团队充分考虑了长时间查阅代码可能导致的眼睛疲劳问题,以及受影响的因素,比如字母的大小和形状、空间量、自然等宽平衡、不必要的细节、连字、以及难以区分的符号或字母(l 和 I)和连字等。
首先来看一下 Mono 字体长什么样,它在不同编程语言中的显示效果如下:
Kotlin
Java
Go
Python
事实上,刚看到 Mono 字体时,由于本人对字体不太敏感,一时竟分不清它和 Consolas 字体的区别。
▲ JetBrains Mono 和 Consolas 字体的对比
乍一看两者的区别不大,但字体考验的就是对细节的把控,虽然 Mono 粗看平平无奇,其实里面却暗含许多门道。
Mono 字体在保证字符采用标准宽度的前提下,增加了小写字母的高度,如此一来,每个字母将会使用更多的像素,有助于改进渲染效果。
另外,Mono 字体舍弃了许多不必要的细节,这样做的目的是当字体较小时,仍可保证文本的清晰显示。更重要的是,字体的形式越简单,眼睛感知的速度就越快,也就更容易辨识。
下图是几个容易给使用者造成混(成)淆(功)的案例,对于这种情况,Mono 字体也进行了优化,相信开发者会更容易分辨。
虽然 Mono 字体有许多优点,但它支持的 143 门语言中没有中文,因此对于中文的显示支持可能不会太好、对了,Mono 字体还是一款开源且免费的字体,使用者可免费用作任何商业或非商业用途。
使用方式
如果使用的是最新版本 JetBrains IDE,可以直接在里面设置 Mono 字体;如果使用的是旧版本或其他的 IDE,需要手动下载字体安装。>>> 戳这里获取下载地址
P.S. 本人尚未进行使用,因此不能提供任何反馈,各位如果有兴趣不妨下载体验一下。我们常说“JetBrains 出品,必属精品”,希望这次不会翻车 : )
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes 启动新的漏洞赏金计划
Kubernetes官方宣布,Kubernetes 产品安全委员会正在启动一个由CNCF资助的新的漏洞赏金计划,以奖励发现存在于 Kubernetes 中的安全漏洞的研究人员。 CNCF方面表示,作为 CNCF 毕业的项目,Kubernetes 必须遵守最高级别的安全最佳实践。早在 2019 年 8 月,CNCF 就成立了安全审核工作组并进行了Kubernetes 的首次安全审核,该审核帮助社区识别了从一般弱点到关键漏洞的问题,使他们能够解决这些漏洞并添加文档来帮助用户。 自 2018 年初开始,其就在计划启动一个正式的漏洞赏金计划。现在,经过几个月的私人测试之后,Kubernetes Bug Bounty 则开始对所有安全研究人员开放。 该漏洞赏金计划由安全公司HackerOne运营。而为了成功运行该程序,HackerOne 团队则都通过了Kubernetes 管理员认证(CKA)考试。 范围是什么 该漏洞的赏金范围涵盖了保存在 GitHub 上的主要 Kubernetes 代码,以及持续的集成,发行和文档工件。Kubernetes方面表示,他们还对集群攻击特别感兴趣,例如特权升级,...
- 下一篇
看完就懂webpack打包原理
什么是 webpack ? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。 webpack 就像一条生产线,要经过一系列处理流程后才能将源文件转换成输出结果。 这条生产线上的每个处理流程的职责都是单一的,多个流程之间有存在依赖关系,只有完成当前处理后才能交给下一个流程去处理。 插件就像是一个插入到生产线中的一个功能,在特定的时机对生产线上的资源做处理。 webpack 通过 Tapable 来组织这条复杂的生产线。 webpack 在运行过程中会广播事件,插件只需要监听它所关心的事件,就能加入到这条生产线中,去改变生产线的运作。 webpack 的事件流机制保证了插件的有序性,使得整个系统扩展性很好。 -- 深入浅出 webpack 吴浩麟 webpack 核心概念 Entry 入口起点(entry point)指示 webpack 应...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主