Windows下IntelliJ IDEA代码里的中文字符显示效果不好,大小不一、歪歪扭扭的,斜体时用字体也不一样。
一直想微调一下IDEA的字体,比如分别设置英文字符用一个字体,中文字符用另一个字体,搜索了但没有结果。
昨天想到是不是可以配置JVM的字体呢?一搜有了。
# 因为实际上调整的是JVM的字体配置,所以这种字体配置方法对NetBeans等其他Java的GUI也是有效的。
参着说明(见后面的参考资料 ),配置、重启IDEA、查看效果,再配再重启再看,倒腾了2个多小时,搞定。说明如下。
操作
很简单,就下面两步,放置一个文件、配置IDE字体:
- 下载下面对应IntelliJ IDEA版本的fontconfig.properties文件,放到
${IDEA_HOME}\jre\jre\lib
目录下。${IDEA_HOME}表示IntelliJ IDEA的安装目录。- IntelliJ IDEA 11: fontconfig.properties
- IntelliJ IDEA 12: fontconfig.properties
- IntelliJ IDEA的【File菜单】-【Settings窗口】中把代码字体设置成
Monospaced
。
Line Space(行间距)根据自己的感觉调整。我喜欢紧凑些,设置的值是0.75
。
上面的配置完成后,重启IntelliJ IDEA即可。
效果图
英文字体用的是Consolas,中文字体是微软雅黑。
字体配置中修改内容的说明
fontconfig.properties
是Java的字体配置文件。
Windows下的缺省的配置是${IDEA_HOME}\jre\jre\lib\fontconfig.properties.src
,这个文件不会生效,文件名改成fontconfig.properties
才生效,也就是上面下载的文件的文件名。
可以Diff一下下载的fontconfig.properties
和已有的fontconfig.properties.src
文件。我做的修改是:
- 添加Consolas和微软雅黑的字体名到字体文件的映射。
就是在文件末尾的filename.xxx
的部分。 - 调整逻辑字体Monospaced引用的字体。
字母字符的字体由Courier New
改成Consolas
。
中文字符的字体设置成Microsoft Yahei
,即微软雅黑。 - 中文编码字符集顺序把
alphabetic
调整到最前面,否则会先从chinese-ms936
字符集对应的微软雅黑中找到英文字母的字体了,不是等宽,代码的显示效果不好。
JVM字体配置的详细说明见参考资料 :)
参考资料
为什么不使用“雅黑Consolas混合字体”的方案
- 雅黑Consolas混合字体中Consolas的斜体是不对。
# Consolas的正常和斜体是两个字体文件,不一样的。Consolas斜体很好看。 - 雅黑Consolas混合字体字体行高MS也有些问题。
换句话说,雅黑Consolas混合字体质量不好。
“雅黑Consolas混合字体”的方案参见: IDEA编辑器常用设置
后记
今年六月份硬盘坏了,Eclipse丢了。想到要重装一堆Eclipse插件,配置成之前的Eclipse的状态,这个和重装OS一样繁琐,有转IntelliJ IDEA想法,再加上旁边几位IntelliJ IDEA粉丝积极推动,就用了。
IntelliJ IDEA安装后自带的插件已经很多:
- 各种SCM支持:Git、SVN、Hg……
- Maven支持
- Spring支持
- Web/JEE开发支持: JS、CSS、WAR、WebService、EJB、模板……
- UT支持:JUnit、TestNG
- UT测试覆盖率支持
- Properties文件编辑支持
- 用文件浏览器打开文件的所在的目录
常用功能的插件不需要自己装。