在VSCode中使用(汉字)等宽字体


最近听了同学的意见,把日常的Markdown编辑器(或者不如说是博客编辑器)从Atom换成了VScode。可以对它们作如下比较:

  • 启动速度:Atom < VScode(Atom启动总是特别慢,而且会卡死)
  • 资源占用:Atom < VScode(可能是因为实现机制的原因,Atom一直挺能耗CPU和内存的……)
  • 保存配置:Atom << VScode
    • 之所以会有这一条,是因为Atom从七月份之后根本没办法保存我的任何配置……
  • 保存状态:都不怎么样
    • 我弃用Atom的最主要原因是它无法正常保存我的Workspace和Open Editor,每次重启都会发现,它报一堆找不到我七月份的项目的错,而且之前打开的文件列表也回退成七月份的了。经过很多谷歌也没解决这个问题。
    • VScode能正常保存Workspace,而且挺好用的。但它原生好像根本就没有保存Open Editor这个功能。于是我安装了插件Restore Editors,但是它有时候会挂(比如我上次重启的时候)。所以看来每次重启之前我要检查一遍它有没有真的save。
  • 美观程度:差不多,无论哪种看多了都会习惯的

所以我现在觉得我的这个选择还不错。而且我发现VScode对Markdown的插件支持比Atom好(或者你说我没好好探索Atom插件也行……但那可能说明Atom插件不够友好)。比如说,它有一个格式化表格的功能,看起来非常友好:

格式化前

格式化后

但是这种时候人就可能会想要更多的东西。上图中显然英文部分对齐了,但中文部分对不齐,显得有点丑陋(我猜对于强迫症来说应该是极其丑陋吧,还不如不格式化)!问题在于,在(至少是我目前的)VScode的默认字体配置下,中文和英文用的不是同一种字体,虽然英文字体自己等宽,但中文和它不太等宽。

VScode的字体默认配置是Consolas, 'Courier New', monospace。所以现在的中文字体是宋体,英文是Consolas,如果把配置全删掉,就会出现这种效果:

纯默认字体

说实话,我认不出这里的英文是什么字体,但反正我觉得不太好看(而且也不等宽)。monospace不好看,而且也对不齐(而且设置Courier New显示的字体居然和monospace是一样的):

Courier New

于是我又去谷歌了,找到了一个解决方案:更纱黑体(be5invis/Sarasa-Gothic),一种为中文和日语准备的等宽字体。README里只写了一堆怎么build,但事实上作者编译了Release[1],直接下载就行。下载之后会得到一堆ttf文件,直接右键全部安装就行(至少Windows是这样的)。安装完之后在Word的字体库里就能找到各种更纱黑体了,但是在VScode中还不能找到,反正我重启了一遍。

效果是这样的:

更纱黑体

如果font name设置不对,可以参考这个issue:What shoule be the font name of Sarasa Mono that can be used in vscode?

总之,我觉得这个字体看起来还不错,而且终于对齐了,我很高兴。这个字体的对齐方式应该是两个英文字符对齐一个中文字符(比我想象得不愚蠢多了)。不过还是有一些小bug,在我写文章的时候就发现了,是和对齐相关的:

对齐的bug

最右边的“能”字被遮住了大半个。经过实验发现,这个问题可能是省略号导致的。

2018.11.20 UPDATE:作者告诉我等距更纱黑体 SC是Code字体,在这种字体下省略号被当做是half-width character,算是正常表现。Ta叫我去用Term字体,于是换成Sarasa Term SC之后就好了。


  1. https://www.mokeyjay.com/archives/2150


 评论