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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

尾注:

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

引用:http://www.cppblog.com/Hero/archive/2009/11/25/101900.html

程序员常用字体(vs2008字体修改方案)的更多相关文章

  1. JAVA程序员常用英语

    JAVA程序员常用英语 干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这 ...

  2. 【常用软件】木木的常用软件点评(2)------VC程序员常用工具篇

     摘自:http://blog.csdn.net/liquanhai/article/details/7215045 木木的常用软件点评(2)------VC程序员常用工具篇 分类: VC++经验总结 ...

  3. Java程序员常用工具类库

    有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...

  4. Java程序员常用的@Component、@Repository、@Controller、@Service系列【案例demo3】

    Java程序员常用的@Component.@Repository.@Controller.@Service系列[案例demo3]   很多程序员通过在类上使用@Repository.@Componen ...

  5. JAVA程序员常用开发工具

    1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...

  6. BAT程序员常用的开发工具,建议收藏!

    今天给大家推荐一批 BAT 公司常用的开发工具,个个好用,建议转发+收藏. 阿里篇 一.Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊 ...

  7. 介绍Python程序员常用的IDE和其它开发工具

    概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境), ...

  8. Python程序员常用的IDE和其它开发工具

    概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE的全称是Integration Development Environment(集成开发环境),一 ...

  9. PHP程序员-常用工具

    三连问 经常有社区的同学问: “我的PHP程序有没有阻塞,我的PHP程序有没有开启协程(对自己写好的代码表示不自信),我的PHP程序有没有问题”.然后贴出了自己的程序,然后进入了愉快的灌水环节,随着时 ...

  10. Java程序员常用工具集

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE ...

随机推荐

  1. java8_api_io

    IO-1    i/o的概念    File类详解        java.io.File    java.io.FileFilter接口        只有一个方法        这是一个函数式接口 ...

  2. PRESTO安装部署和参数说明(一)

    PRESTO部署和参数说明(一) 一,概要 在部署和使用presto的过程中,在此记录一下部署记录和使用记录以及需要注意的事项.本人使用的presto版本是0.214,3台redhat虚拟机.使用背景 ...

  3. Java扩展方法之SPI

    API:API(Application Programming Interface)表示应用程序编程接口 SPI:SPI(Service Provider Interface)表示服务提供商接口  A ...

  4. 密码疑云 (3)——详解RSA的加密与解密

    上一篇文章介绍了RSA涉及的数学知识,本章将应用这些知识详解RSA的加密与解密. RSA算法的密钥生成过程 密钥的生成是RSA算法的核心,它的密钥对生成过程如下: 1. 选择两个不相等的大素数p和q, ...

  5. Flink神秘工具lib

    Flink里面有一个神坑,叫做FI坑.其实只是使用Fi的时候被暴露出来.但是,杀不死你的,终将使你更加强大. Flink集群有一个lib文件件,里面比较happy,可以放各种jar:这样,client ...

  6. 如何开启 MySQL InnoDB 共享表空间和独立表空间

    修改数据库的表空间管理方式 修改my.ini文件的innodb_file_per_table的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独立表空间: innodb_file_per_ta ...

  7. UIView和CALayer区别

    (1)首先UIView可以响应用户的触摸事件,Layer不可以. (2)View中frame getter方法,bounds和center,UIView并没有做什么工作:它只是简单的各自调用它底层的C ...

  8. c#调用python代码

    c#调用python的方法比较多,比如ironpython,尽管不用安装python环境,可是不兼容python众多的包,也只更新到了python2,通过创建python进程这种方式可以很好的解决兼容 ...

  9. YUV介绍

    YUV444与YUV422下采样. 一.YUV介绍 YUV有三个分量:Y(Luminance/Luma:亮度).U和V表示色差,体现的是图片的色彩信息.相对于RGB彩色空间,将亮度信息和色彩信息分离. ...

  10. 关于RandomAccessFile一个坑!!!!

    最近正好遇到了使用RandomAccessFile做断点下载的情况,被一个问题坑了好多次 本来的代码: RandomAccessFile randomAccessFile = new RandomAc ...