我在SO上看过几个字体主题,似乎大多数人都使用等宽字体进行编程任务。我已经使用Verdana进行了几年的编程,我非常喜欢增强的可读性,而不会遗漏任何与航天相关的内容。
为什么使用等宽字体?
答案 0 :(得分:99)
采用等宽字体:
Il 0O
答案 1 :(得分:98)
我以前从未考虑过以比例字体编码。所以为了科学的利益,我只是改变了我的编辑,试一试。
在修好几张简单的门票之后,有几点意见:
!
中的if (!foo)
运算符。 (if(!foo),见!){}[]()
vs {} []())$@%
vs $ @%)'"!;:,.
vs'“!;:,.。)0Oo iIl
vs 0Oo iIl)有些积极点。不可否认,我只是在使用它一段时间,但肯定有一些方面比例字体效果更好:
明天我会再次更新这个答案(假设我可以像这样整整一天!)
答案 2 :(得分:28)
我喜欢排列相关的条件,试图让它们更明显地被分组。例如:
if ((var1 == FOO) && ((var2 == BAR) ||
(var2 == FOOBAR)))
可变宽度字体使这更加困难。
答案 3 :(得分:18)
我在这里看到的一件事是讨论“排队代码”和缩进。我想指出以下几点:
所以将所有这些绘制在一起,如果你在同一个地方开始每一行,并且一致的间距是相同的宽度,并且标识符不会自发地改变每一行的宽度,那么你的代码实际上会排成一行! ......直到有些不同。
例如:
identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
我要承认的一点是,非字母数字字符通常不是很宽;这些包括)(] [} {,:|“;',`!和。然而,这可以在字体编辑器中修复......只需将它们扩大。这不是非等距的固有问题;只是没有对它有很多需求,所以还没有完成。
总之,个人偏好很好,但我认为选择等宽航空而不是非等宽航空几乎没有实际理由。你喜欢它的样子吗?当然,做等宽。你想要更多的东西适合你的屏幕?去非单声道。但是,人们对待像异端邪说这样的非等宽的方式有点过分了。
答案 4 :(得分:16)
我对此线程感到好奇,因为等宽字体的许多参数可以通过一些调整轻松地反驳。所以我将我的IDE切换到Calibri(因为它有一个漂亮的圆脸,并针对UI的屏幕上的可读性进行了优化 - 完美)。现在我显然必须使用制表符代替缩进空格(忽略所有问题),4个空格宽度显然不够,所以我切换到10。
现在看起来很不错。但是,我可以发现一些明显的问题。在我测试了这个设置一段时间后,可能会有更多的表面。
符号不对齐。例如,请考虑以下C#代码:
var expr = x => x + 1;
箭头(=>
)看起来像任何等宽字体的单位。它看起来像其他字体中的两个相邻字符。对>>
等运营商也是如此。
上下文相关缩进完全被破坏:在某些情况下,缩进固定数量的制表符是不够的。采用可能以下列方式缩进的LINQ表达式:
var r = from c in "This, apparently, is a test!"
where !char.IsPunctuation(c)
select char.ToUpper(c);
您无法使用比例字体执行此操作。
总而言之,角色太窄了。再次,额外的字母间距可能会有所帮助,在点击的情况下肯定是必要的。但是,我觉得所有这些使比例字体更具可读性的调整只会自然地模拟等宽字体。对于到目前为止提到的所有要点,这当然是正确的。
答案 5 :(得分:11)
我使用Comic Sans MS,它看起来非常合理,因为它的小点尺寸(它只在头条尺寸上开始看“jokey”)。这很简单,但仍保持文本足够小,以便在文本窗口中显示合理数量的代码,并打开几个VS的停靠面板。
您可以使用解决方案资源管理器面板,并且仍然有100列文本可读而无需水平滚动。转移,我可以让DXCore Documentor面板(显示格式化的XMLDOC)打开得足够宽,可以阅读,同时仍然可以看到足够的文本来记录XMLdocs。
答案 6 :(得分:10)
如果您在团队中工作,那么单行间距字体可以确保代码清晰,并且可以为所有人正确布局,无论他们喜欢使用单倍间距字体。
使用可变宽度字体时,您的代码可能看起来很清楚,但如果单倍间距字体用户打开它,则不太可能看起来相同。
答案 7 :(得分:10)
所有需要花费几个小时的时间来弄清楚为什么搜索没有找到某些内容,因为你在文字中有2个空格而不是1个,以便意识到你应该使用Monospace字体。当设计师没有使用等宽字体时,我尝试修复Lotus Notes代理时遇到过这种情况。直到我将代码粘贴到CodeWright中才能将其打印出来,这显然是问题所在。
答案 8 :(得分:10)
等宽字体使代码排列更容易。
与团队合作时尤其如此;团队中的每个人都可以使用不同的字体,只要它们都是等宽字体,一切都会排成一行。同样,如果一个人使用许多不同的开发工具,如果它们都是等宽的,那么一切都会排成一行。如果它们不是全等宽的,那么你必须确保它们都使用相同的字体,如果你在两个平台上开发,那可能很困难。
事实上,一些开发工具仅支持等宽字体。
另一个原因是等宽字体往往具有更多不同的字符。将lIiO0与lIiO0
进行比较,您将看到我的意思。它们还可以更容易地计算空格。
答案 9 :(得分:6)
我怀疑等宽字体是程序员偏爱的基于文本的DOS时代的结转。
另一方面,我,我自己也尝试过Verdana和其他一些推荐的比例字体,但我无法应对这一变化。我的眼睛训练有素,不适合等宽。符号上的语言很重要,例如:C / C ++,C#,Perl等,对我来说看起来太不一样了。符号的放置使代码看起来完全不同。
答案 10 :(得分:6)
根据代码的性质而不是常规语言,使它正确排列更好。此外,在代码编辑中,有时您想要阻止选择,阻止复制和阻止粘贴。在Visual Studio中,您可以在选择鼠标时使用ALT键进行块选择。在不同的编辑器中可能会有所不同,但我总是发现编辑器中的选项在某些情况下非常重要,除非您使用单倍间距字体,否则它将无法正常工作。
答案 11 :(得分:5)
我个人觉得在代码编辑器中更容易阅读单倍间距字体。当然,我几乎失明了。这可能会有所不同。我目前在15点使用高对比度字母的深色背景运行consolas字体。
答案 12 :(得分:2)
如果深度超过一个级别,则使用空格进行缩进将是一个问题。
答案 13 :(得分:2)
主要用于对齐目的(例如,当函数参数声明跨越多行并且您想要对它们进行排列,或排列注释等)。
答案 14 :(得分:1)
我认为,就像制表符的问题一样,复杂的因素是为了对齐而缩进某些东西,而其他人有不同的偏好。事情变得错位。