自定义文本编辑器和终端以使用非等宽字体而不会产生可怕的结果?

Aes*_*lus 7 fonts terminal vim text-editors iterm2

我想尝试所有字体,包括那些不是等宽的字体。我理解使用等宽字体的原因,但坦率地说,它们对我来说似乎不合法。

例如,使用等宽字体的一个原因是代码块在编辑器中完美排列。但是为什么不能简单地从给定字体中的最小字符或实现这一点的某个单元构建网格。这似乎是 ASCII 时代的延续。我用谷歌搜索过,但找不到太多关于这方面的信息。

有没有人以前尝试过这个,或者知道任何试图启用它的项目?特别是我想在 OS X 上使用 VIM 和 iTerm2 中的字体。

rom*_*inl 6

我读过许多很久以前的博客文章,这些文章是由那些实际上更喜欢在代码中使用比例字体的人写的。通常,他们喜欢这种字体的原因是它们的表现力,但他们总是需要一些非常丰富的语法突出显示和/或自定义外部工具来使其工作并真正能够阅读和理解他们自己的代码。

您不像阅读文本那样阅读代码。一个主要是垂直的,另一个主要是水平的。

如您所知,等宽字体是针对网格设计的,因此每个字符都与其他字符占据相同的水平空间。正因为如此,我们可以对齐事物并阅读和理解离散块中的代码,而无需太多的脑力劳动:一切都是有规律的和可预测的,这在我们的工艺中是必需的。

因为我们倾向于写短行,并且源文件的逻辑部分是垂直分布的,所以我们的大部分眼球运动都是垂直的,这就是编程的自然流程。等宽字体有助于这种移动,因为事物可以整齐地对齐,我们不必过多地移动我们的眼睛。

比例字体的每个单独字形都设计有不同的宽度和不同的默认空白设置。此外,此类字体大量使用字距调整(字形之间的空白调整),这实际上使文本看起来不错。删除字距调整和任何比例字体(即使是最好的字体,如 Frutiger 或其他字体)都会看起来像 ish。单独的字形仍然会被很好地绘制,但它们将不再相互配合并创造出独特的节奏,使它们变得有用和令人愉快。

将网格应用于 Helvetica Neue 中的文本集会导致黑/白分布不均和不可读的混乱,因为我们实际上会删除比例字体最重要的特征。

比例字体根本不是为垂直流动而设计的。字距调整非常小心,以实现最佳的水平节奏,但在编程环境中完全不需要这种功能。

最后,您实际上可以将 Vim 的字体设置为某种比例字体,以下是 Helvetica Neue 12 px 的外观:

截屏
    (点击图片放大)

和 Inconsolata-dz 相同的文件,12 像素:

在此处输入图片说明

我想这些截图不言自明。

  • 我发现自己越来越相信我想尝试等宽字体。这些屏幕截图仅表明 vim 在显示它们方面做得很笨拙——无论如何它都会强制每个字符进入一个固定宽度的框。在做出判断之前,我有兴趣查看更多相关的屏幕截图。阅读代码时,唯一*需要*对齐的是行首的空格。比例宽度字体与固定宽度字体一样有效。但是,是的,我承认,有时我会在第一个非空白字符之后进行额外的对齐。 (4认同)

Roo*_*ook 0

使用可变间距字体可以做很多事情,但历史已经表明,而且普遍认为这是一个坏主意。因此,大多数针对程序员的编辑器不允许您使用它们,这是正确的。

假设您要用给定字体的最小字符“画一个框”。并以某种方式设法让它排成一行。

在一排前面放一个空格……因为空间相对较宽,所以会破坏整个东西。现在你必须将其间隔几次,......直到宽度再次匹配,或者......这是一个坏主意。甚至没有对此进行讨论。