Windows下IntelliJ IDEA代码显示的中文字符字体配置

Posted on November 7, 2012

Windows下IntelliJ IDEA代码里的中文字符显示效果不好,大小不一、歪歪扭扭的,斜体时用字体也不一样。

一直想微调一下IDEA的字体,比如分别设置英文字符用一个字体,中文字符用另一个字体,搜索了但没有结果。

昨天想到是不是可以配置JVM的字体呢?一搜有了。
# 因为实际上调整的是JVM的字体配置,所以这种字体配置方法对NetBeans等其他Java的GUI也是有效的。

参着说明(见后面的参考资料 ),配置、重启IDEA、查看效果,再配再重启再看,倒腾了2个多小时,搞定。说明如下。

操作

很简单,就下面两步,放置一个文件、配置IDE字体:

  1. 下载下面对应IntelliJ IDEA版本的fontconfig.properties文件,放到${IDEA_HOME}\jre\jre\lib目录下。${IDEA_HOME}表示IntelliJ IDEA的安装目录。
  2. IntelliJ IDEA的【File菜单】-【Settings窗口】中把代码字体设置成Monospaced
    Line Space(行间距)根据自己的感觉调整。我喜欢紧凑些,设置的值是0.75
    代码字体设置

上面的配置完成后,重启IntelliJ IDEA即可。

效果图

IntelliJ IDEA的中文字符显示效果图

英文字体用的是Consolas,中文字体是微软雅黑

字体配置中修改内容的说明

fontconfig.properties是Java的字体配置文件。 Windows下的缺省的配置是${IDEA_HOME}\jre\jre\lib\fontconfig.properties.src,这个文件不会生效,文件名改成fontconfig.properties才生效,也就是上面下载的文件的文件名。

可以Diff一下下载的fontconfig.properties和已有的fontconfig.properties.src文件。我做的修改是:

  1. 添加Consolas微软雅黑的字体名到字体文件的映射。
    就是在文件末尾的filename.xxx的部分。
  2. 调整逻辑字体Monospaced引用的字体。
    字母字符的字体由Courier New改成Consolas
    中文字符的字体设置成Microsoft Yahei,即微软雅黑。
  3. 中文编码字符集顺序把alphabetic调整到最前面,否则会先从chinese-ms936字符集对应的微软雅黑中找到英文字母的字体了,不是等宽,代码的显示效果不好。

JVM字体配置的详细说明见参考资料 :)

参考资料

为什么不使用“雅黑Consolas混合字体”的方案

  1. 雅黑Consolas混合字体中Consolas的斜体是不对。
    # Consolas的正常和斜体是两个字体文件,不一样的。Consolas斜体很好看。
  2. 雅黑Consolas混合字体字体行高MS也有些问题。

换句话说,雅黑Consolas混合字体质量不好。

“雅黑Consolas混合字体”的方案参见: IDEA编辑器常用设置

后记

今年六月份硬盘坏了,Eclipse丢了。想到要重装一堆Eclipse插件,配置成之前的Eclipse的状态,这个和重装OS一样繁琐,有转IntelliJ IDEA想法,再加上旁边几位IntelliJ IDEA粉丝积极推动,就用了。

IntelliJ IDEA安装后自带的插件已经很多:

  1. 各种SCM支持:Git、SVN、Hg……
  2. Maven支持
  3. Spring支持
  4. Web/JEE开发支持: JS、CSS、WAR、WebService、EJB、模板……
  5. UT支持:JUnit、TestNG
  6. UT测试覆盖率支持
  7. Properties文件编辑支持
  8. 用文件浏览器打开文件的所在的目录

常用功能的插件不需要自己装。