程序员常用字体(vs2008字体修改方案)

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

  • 等宽的字符
  • 简洁、清晰并且规范的字符形状
  • 支持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;
    • 将0804一行修改为需要的中文字体,格式为“0804|中文字体名称”,比如“0804|微软雅黑”;

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

转载于:https://www.cnblogs.com/yinbo_crazy/archive/2012/10/29/2744239.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 使用模板需要注意的事情

总结: ●使用模板时必须确定出通用数据类型T,并且能够推争出一致的类型 #include<iostream> using namespace std; #include<string> #include<fstream>//函数模板注意事项 template<class T> //typename 可以替换成class void mySwap(T&a, T&am…

三分法解决凸(凹)函数极值问题

二分法只适用与线性函数&#xff0c;当函数脱离线性而呈现凸性或者凹性的时候&#xff0c;三分是很有必要的。 三分过程如下图&#xff1a; 凸函数&#xff1a; 凹函数&#xff1a; 实现方法&#xff1a; double Calc(double p) {/*...*/ }double Solve(double MIN, double MAX…

C++ 普通函数和模板函数调用规则

/** 调用规则如下: 1.如果函数模板和普通函数都可以实现&#xff0c;优先调用普通函数 2.可以通过空模板参数列表来强制调用函数模板 3.函数模板也可以发生重载 4.如果函数模板可以产生更好的匹配, 优先调用函数模板 */ 总结:既然提供了函数模板&#xff0c;最好就不要提供普…

计算机网络原理(第一章)课后题答案

第一章 1.什么是计算机网络&#xff1f; 计算机网络是互联、自治的计算机集合 自治&#xff1a;计算机系统彼此独立&#xff0c;不存在主从或控制与被控制的关系 互联&#xff1a;利用通信线路链接&#xff0c;连接相互独立的计算机系统 2.网络协议的三要素是什么&#xf…

VCS使用指令

vcs -debug v2k -f file.tcl -R -ucli -V -do do.tcl -notice -P /home/tian/programs/verdi/share/PLI/VCS/LINUX/novas.tab /home/tian/programs/verdi/share/PLI/VCS/LINUX/pli.a转载于:https://www.cnblogs.com/tshell/archive/2012/10/31/2747463.html

计算机网络原理(第二章)课后题答案

第二章 1.计算机网络应用可以分为哪几种体系结构的应用类型&#xff1f;各种应用类型的特点是什么&#xff1f; C/S结构&#xff1a;通信旨在客户与服务器之间进行&#xff0c;客户与客户不直接通信 纯P2P结构&#xff1a;没有永远在线的服务器&#xff0c;任意端系统/结点之…

计算机网络原理(第三章) 传输层 课后习题

1、实现可靠数据传输的主要措施有哪些?这些措施主要用于解决哪些问题&#xff1f;P98差错检测&#xff1a;利用差错编码实现数据包传输过程中的比特差错检测 确认&#xff1a;确认方向发送方反馈接收状态 重传&#xff1a;发送方重新发送接收方没有正确接收的数据 序号&#x…

电子商务的安全机制及商务模式

电子商务最常见之安全机制有SSL及SET两种。【分类】B2B、B2C、 C2C、B2M四类电子商务模式。 B2B 指的是Business to Business. as in businesses doing business with other businesses,商家(泛指企业)对商家的电子商务&#xff0c;即企业与企业之间通过互联网进行产品、服务及…

Date和Calendar

此文章来源于廖雪峰博客&#xff1a;Date和Calendar - 廖雪峰的官方网站 在计算机中&#xff0c;应该如何表示日期和时间呢&#xff1f; 我们经常看到的日期和时间表示方式如下&#xff1a; 2019-11-20 0:15:01 GMT00:002019年11月20日8:15:0111/19/2019 19:15:01 America/N…

grandle下载安装图解

1、登录官网&#xff1a;www.gradle.org,进入到下图的界面&#xff1a; 我这里选择了最新版本下载 配置环境变量&#xff0c;这个gradle环境变量是依赖jvm的&#xff0c;需要优先配置jdk&#xff0c;我这里就配置好了 这个GRADLE_USER_HOME相当于maven的本地仓库 配置完成&…

android ListView控件滑动时出现黑色背景问题解法方案

设置ListView属性android:cacheColorHint"#00000000" <ListViewandroid:id"id/orderDetailListView01"android:layout_width"wrap_content"android:layout_height"wrap_content" android:cacheColorHint"#00000000" /&…

面向对象设计7大原则

概述 熟练掌握和应用面向对象设计&#xff08;Object Oriented Design&#xff0c;OOD&#xff09;7大原则&#xff0c;是初/中级Java工程师向高级/资深工程师进阶的一个必备技能&#xff0c;它可以大大提升程序的可复用性和可维护性&#xff0c;也是重构代码的一大利器。7大设…

discuz x2.5 DIY模块模板语法详解

基本语句 [loop]...[/loop]标签来循环显示模块中的数据&#xff1b;如果要在模板中多处循环可以使用[loop1]...[/loop1]的方式扩展&#xff08;只能扩展1-9个&#xff09; [orderN]...[/order]标签来替代默认loop中的第N个位置数据的展示&#xff0c;你可以使用[order1N]...[/o…

get请求可以传body吗_GET 和 POST 的区别?

同样还是面试被问到的问题&#xff0c;经过这两天的复盘&#xff0c;发现之前对其的了解只是冰山一角&#xff0c;这两天也学到了不少新的知识&#xff0c;不得不说面试的确能帮我们弥补一些不足。本文将从基本概念、两者之间的区别以及几个常见问题来进行介绍&#xff0c;首先…

WINCE 下配置 QT 的方法

1. 推荐安装环境 Windows XP SP3 VS2005(SP1)2. 载Qt for WinCE(eg. qt-everywhere-opensource-src-4.8.3.zip)3. 解压到C:\Qt\4.8.3WinCE4. 安装WinCE的SDK(如RNx&#xff0c;WinCE5.0的)5. 将C:\Qt\4.8.3WinCE\bin加到环境变量Path中6. 修改代码或配置(注1)&#xff0c;否则…

AQS基本原理

什么是AQS&#xff1f; AQS即AbstractQueuedSynchronizer,是一个用于构建锁和同步器的框架。它能降低构建锁和同步器的工作量&#xff0c;还可以避免处理多个位置上发生的竞争问题。在基于AQS构建的同步器中&#xff0c;只可能在一个时刻发生阻塞&#xff0c;从而降低上下文切…

C语言 int** 二重指针的理解

#include <stdio.h> #include <stdlib.h>/*&根据值找地址*根据地址找值 */ f(int** q){//传入的是指针的地址 int i 3; printf("子函数 i的地址 %#X\n",&i); // *q 代表的就是p变量 *q &i; //*q指向是p的值 也就是…

ReentrantReadWriteLock源码分析

概述 ReentrantReadWriteLock维护了一对相关的锁&#xff0c;它们分别是共享readLock和独占writeLock。关于共享读锁和排他写锁的概念其实很好理解。所谓共享读锁就是一个线程读的时候&#xff0c;其它线程也可以来读&#xff08;共享&#xff09;&#xff0c;但是不能来写。排…

@Autowired、@Qualifier、@Resource的区别

参考博文&#xff1a; http://www.cnblogs.com/happyyang/articles/3553687.html http://blog.csdn.net/revent/article/details/49203619 http://blog.csdn.net/ad921012/article/details/49679745 spring不但支持自己定义的Autowired注解&#xff0c;还支持几个由JSR-250…

UINavigationViewController的backBarButtonItem设置技巧

之前大家是否疑惑为什么设置了类似这样的代码 UIBarButtonItem *backButton [[UIBarButtonItem alloc] initWithTitle:"返回" …