“让代码看起来更舒服”,看到这个标题,也许你会条件反射地以为我要讲“重构”或者“编码规范”等等。噢,可爱的开发人员,我们暂且不谈技术,只谈体验。让我们来装扮一下每天都要面对的Visual Studio,让代码看起来更舒服。

下图展示了Visual Studio 2008默认的编辑器,为了让代码更加容易辨识,Visual Studio用不同的颜色将各种关键词区分开来。

image

默认的配色方案固然无可厚非,每当夜深人静的时候,它总是能让我热泪盈眶。我当然没有矫情到被自己的代码感动,而是我脆弱的眼睛实在受不了它那惨白的背景色。

于是我决定要做出一些改变。

好在Visual Studio可以方便地设置代码配色方案,选择菜单【工具】【选项】,在弹出的“选项”对话框中依次选中“环境”、“字体和颜色”,在“显示其设置”中选中“文本编辑器”,然后我们就可以随意地更改代码编辑器的字体和配色方案了。

image

好吧,我承认自己动手调整配色方案是一件机械式的体力活,开发人员最痛恨机械式的体力活。有这时间还不如Google一下,看看有没有前人栽好的树供我们乘凉,于是我找到了一些配色方案,只要导入到Visual Studio中,就可以马上看到效果!

导入配色方案的方法很简单,选择菜单【工具】【导入和导出设置】,在弹出的“导入和导出设置向导”对话框中选择“导入选定的环境设置”,然后根据自己的实际情况选择“是,保存当前设置”或“否,仅导入新设置,覆盖我的当前设置”,然后点击“浏览”来打开一个Visual Studio Settings File(扩展名为.vssettings)。

需要注意的是,Visual Studio Settings File包含了Visual Studio的各种设置,所以如果你导入的设置文件除了下图所示的“字体和颜色”之外,还有其他设置,请小心勾选。

image

下面是一些我找到的配色方案,以及它们显示同一段代码的效果图,大家挑选喜欢的下载吧。

Jeff-atwood,猛击这里下载

image

HumaneStudio,猛击这里下载

image

2008-DarkGrey,猛击这里下载

image 

2008-Ragnarok_Grey,猛击这里下载

image

2008-Moria_Alt,猛击这里下载

image

2008-Nightingale,猛击这里下载

image

2008-DesertNights,猛击这里下载

image

尾注:

  • 由于年代久远,我已经记不清这些配色方案的出处了,所以没有注明来源。
  • 这些配置文件均为Visual Studio 2008配置文件,我没有在Visual Studio其他版本做测试,不保证兼容性。

如果上述这些配色方案仍然不能满意的话,可以尝试一下国外友人开发的Visual Studio Theme Generator,只需要简单的设置一下基色调和对比度就可以生成一个Visual Studio配置文件了,需要的话,请猛击这里

字体不仅是设计师手中重要的武器,对我们开发人员来说,字体的选择也有许多讲究,一个好的、适合展示代码的字体,应该具备以下要素:

  • 等宽的字符
  • 简洁、清晰并且规范的字符形状
  • 支持ASCII码为128以上的扩展字符集
  • 与字符同等宽度的空格
  • 易于分辨的小写字母l、大写字母I、数字1和符号|
  • 易于分辨的大写字母O和数字0
  • 易于分辨的前引号和后引号,最好能够前后对称
  • 易于分辨的其他标点符号,尤其是大括号、中括号、小括号和尖括号
  • 良好的中文支持和显示

下图展示了一个极端的反例,虽然很有个性,但并不适合用来显示代码。它的大写字母大的可怕,小写字母却小的可怜;字符不仅不清晰,而且不规范;小写字母l、大写字母I、数字1和符号| 难以分辨;大写字母O和数字0难以分辨;标点符号还凑合,只是下划线为什么是断开的?

image

当然,这个反例的确有些夸张,但其上文所列举的条件是比较苛刻的,我们在选择字体时没有必要非要完全满足所有条件,事实上这种字体也是凤毛麟角。下文所分享的一些字体也并没有完全满足所有条件,我们发现,只要满足了其中一些关键条件,用来显示代码就已经很不错了。

在Visual Studio中,更改编辑器的字体是件简单的事情,选择菜单【工具】【选项】,在弹出的“选项”对话框中依次选择“环境”和“字体和颜色”,然后在“显示其设置”中选择“文本编辑器”,最后在“字体”中选择字体就可以了,如下图所示:

image

在上图中,我们发现Visual Studio已经将等宽字体用粗体标识了出来,这样做是为了让我们更容易找到等宽的字体,并不表示等宽字体就一定适合显示代码,比如下图所示的“新宋体”就是一个反例:

image

在新宋体中,数字0之比大写字母O瘦那么一点点,小写字母l和数字1也十分相像,幸亏配色方案能够颜色将它们区别开来,否则实在难以分辨。这也从另一个角度说明了配色方案与字体是相辅相成的,搭配恰当时,会让代码更加清晰易辨。

下面就和大家分享一些在编程界声名烜赫的字体,截图所采用的配色方案为HumaneStudio,展示顺序为字体首字母升序。这些字体可能乍一看都一样,但仔细品味,还是能够发现不同的味道,希望大家都能找到适合自己的字体。

Andale Mono,演示字号为14,猛击这里下载

image

Anonymous Pro,演示字号为14,猛击这里下载

image

Bitstream Vera Sans Mono,演示字号为14,猛击这里下载

image

Consolas,演示字号为14,Windows或Visual Studio已内置:

image

Courier New,演示字号为14,Windows已内置:

image

DejaVu Sans Mono,演示字号为14,猛击这里下载

image

Envy Code R,演示字号为16,猛击这里下载

image

Inconsolata,演示字号为16,猛击这里下载

image

Monaco,演示字号为12,猛击这里下载

image

Monofur,演示字号为16,猛击这里下载

image

Progmata,演示字号为14,猛击这里下载

image

Share TechMono,演示字号为16,猛击这里下载

注:此字体似乎会将连在一起的fl显示为一个点,不建议使用,可惜可惜。

image

尾注:

  • 本文所分享的字体均支持ClearType。
  • 从评论来看,中文的显示的确是一个影响美观的重要因素,所以产生了许多微软雅黑和一些优秀英文字体的混合版,但其实还有一种方法可以快速而简单的实现用不同的字体显示中英文(感谢DiryBoy提醒),方法如下:
    • 用文本编辑器打开%AppData%\Microsoft\VisualStudio\9.0\VsFontLk.dat;(在运行中输入%AppData%就会出现%AppData%这个文件夹的位置)
    • 将0804一行修改为需要的中文字体,格式为“0804|中文字体名称”,比如“0804|微软雅黑”;