为什么在IDE中使用单空间字体?

为什么在IDE中使用单空间字体?,ide,fonts,text-editor,Ide,Fonts,Text Editor,我在SO上看到了几个字体主题,似乎大多数人都使用单空间字体进行编程任务。我已经使用Verdana编程好几年了,我真的很喜欢增强的可读性,没有遗漏任何与monospace相关的内容 为什么使用单空间字体?在单空间字体中: 等长字符串文字看起来相等 更容易看到细标点符号,如:(){} 相似的字符看起来更不一样:Il 0O与Il 0O 您知道一行是否会在一个X字符宽的窗口上换行。这意味着您的团队可以标准化100个字符的行,并且一行始终看起来像一行 一旦你的缩进深度超过一个级别,使用空格将是一个问题。

我在SO上看到了几个字体主题,似乎大多数人都使用单空间字体进行编程任务。我已经使用Verdana编程好几年了,我真的很喜欢增强的可读性,没有遗漏任何与monospace相关的内容

为什么使用单空间字体?

在单空间字体中:

  • 等长字符串文字看起来相等
  • 更容易看到细标点符号,如:(){}
  • 相似的字符看起来更不一样:Il 0O与
    Il 0O
  • 您知道一行是否会在一个X字符宽的窗口上换行。这意味着您的团队可以标准化100个字符的行,并且一行始终看起来像一行

一旦你的缩进深度超过一个级别,使用空格将是一个问题。

我个人认为单间距字体在代码编辑器中更容易阅读。当然,我几乎失明了。这可能会有所不同。我目前在15点运行ConsoleAS字体,背景为黑色,字母对比度高。

我喜欢排列相关的条件句,以使它们更明显地分组。例如:

if ((var1 == FOO) && ((var2 == BAR) ||
                      (var2 == FOOBAR)))
identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;

可变宽度字体使这变得更加困难。

我怀疑单间距字体是程序员从基于文本的DOS时代遗留下来的首选字体


另一方面,我自己也尝试过Verdana和其他一些推荐的比例字体,但我无法应对这种变化。我的眼睛训练得太好了,不适合单一空间。大量使用符号的语言,如:C/C++、C#、Perl等,对我来说太不一样了。符号的位置使代码看起来完全不同。

我认为,就像制表符的问题一样,复杂的因素是为了对齐而缩进某些内容,而其他人有不同的首选项。事情会变得不协调。

由于代码的性质而不是常规语言,最好将其正确排列。此外,在代码编辑中,有时需要块选择、块复制和块粘贴。在VisualStudio中,可以在进行鼠标选择时使用ALT键进行块选择。在不同的编辑器中可能会有所不同,但我始终发现,在某些情况下,编辑器中的选项非常重要,除非您使用单间距字体,否则效果不会很好

如果您在团队中工作,那么单间距字体可以确保代码对每个人都清晰且布局正确,无论他们喜欢使用哪种单间距字体


使用可变宽度字体时,您的代码可能看起来很清晰,但如果使用单间距字体用户打开它,代码看起来就不太可能相同。

我使用的是Comic Sans MS,它看起来非常合理,因为字体的大小很小(它只在标题大小上看起来像“笑话”)。它看起来很简单,但仍然保持文本足够小,以便在文本窗口中可以看到合理数量的代码,同时打开几个VS的停靠面板


您可以打开“解决方案资源管理器”面板,但仍有100列文本可读,无需水平滚动。另外,我可以将DXCore Documentor面板(显示格式化的XMLDOCs)打开到足以阅读的程度,同时仍然能够看到足够的文本来记录XMLDOCs。

主要用于对齐目的(例如,当函数参数声明跨越多行时,您希望将它们对齐,或对齐注释等).

我以前从未考虑过按比例字体编码。因此,为了科学的利益,我把我的编辑换了,让它试一试

以下是在修复了两张简易票后的一些观察结果:

  • 代码似乎非常密集。我的大部分代码大约有80列,很少超过100列。一个比例字体将其压缩到编辑器左侧的一个小条带上。如果您的屏幕空间很短,可能会很有用,但它似乎过于紧凑
  • 代码的“纹理”丢失。很难说我在看什么样的结构——它只是一大块文本,几乎需要逐字阅读
  • 非常容易错过
    中的code>运算符。(如果(!foo),请参阅!)
  • 标点符号的定义非常糟糕。很多是很难区分的(
    {}[])(
    vs{}[]))
  • 某些标点符号比其他标点符号大得多,从而推断出没有标点符号的强调(
    $@%
    vs$@%)
  • 有些字符很窄,很难识别(
    '“!;:,。
    vs'”;:,)
  • 有些数字和字母非常相似(
    0Oo iIl
    vs 0Oo iIl)
  • 我非常依赖于语法突出显示,没有它,几乎不可能完成确认引号是否平衡等操作
  • 对齐(除了简单的缩进)完全中断。您可以通过添加额外的空格来增加它的长度,但由于字体的比例性质,行可能不会完全对齐-代码看起来更混乱
  • 正则表达式是。。有趣
不过,也有一些积极的方面。诚然,我只使用了一段时间,但肯定有一些方面比比例字体更好:

  • “单词”更容易阅读——拼写错误(如拼写变量不正确)会向你袭来
  • 使用更长、更具描述性的变量名会让我感觉更好(可能是因为它们的扫描效果更好,可能是因为文本的水平大小被压缩了)
  • 这样的代码看起来更容易阅读。我的大脑更容易“标记”每个单词并理解其含义。虽然因为标点符号更难阅读,但仍然很难理解,但如果有一点时间来适应,也许会有所改变
明天我会再次更新这个答案(assum)
var r = from c in "This, apparently, is a test!"
        where !char.IsPunctuation(c)
        select char.ToUpper(c);
identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;