Visual Studio 2019和VS Code之间字体的区别

3

我想让VS Code编辑器看起来与Visual Studio完全相同。 我确保字体设置完全相同,但是在VS Code中文本仍然呈现不同(似乎“轻”)。 有没有办法解决这个问题?

在下面的图像中,顶部的文字是从Visual Studio复制的,而底部的文字是从VS Code复制的。 我知道差异微小,但仍然非常明显。

enter image description here


我注意到VSCode的字体渲染方式也不同——实际上与许多其他软件不同。如果是这样,他们可能正在使用一些更新的渲染软件,以实现更现代的外观。我会看看能找到什么信息。 - JΛYDΞV
市场上有一个 Visual Studio 2017 浅色主题,它可以让你非常接近你想要的效果。 - Timothy G.
1个回答

4
字体渲染在VSCode中一直是一个反复出现的问题,涉及到多个不同层面的影响,特别是在便携式GUI中。例如:
- 您的显卡可能会影响字体的呈现方式(您可以尝试手动调整显卡设置)。 - 显然,您的显示器会影响呈现效果。实际上,您的显示器有很大的影响。(尝试调整您的显示器设置) - 操作系统提供的颜色设置可能会产生影响(通常情况下,颜色设置与显卡设置相同。这意味着在某些情况下,您可以使用操作系统的GUI来调整显卡设置(但在Ubuntu上不行))。

有些事情超出你的控制,比如:

  • VSCode是使用Electron v6编写的。 Electron不仅影响字体渲染,而且当VSCode切换到版本6时,很多人报告编辑器字体渲染质量下降

  • VSCode还实现了抗锯齿工具,但据我所知,它们是自动配置的,因此您无法控制这些工具。这些工具可能是导致您在VS IDE和VS CODE之间看到渲染差异的最大原因之一。然而,有一个工具可能会让您对Visual Studio的渲染方面有一些控制,我在下面分享了一个链接。作为一条消息,VSCode使用的抗锯齿被称为亚像素渲染,据我所知,Visual Studio没有实现这个功能。



你最具控制力的领域:

有一件/工具你可以百分之百地控制,它也极大地影响字体呈现,那就是你决定使用的字体。在选择字体时,你可以选择装备OTF或TTF。根据我的个人经验,90%的情况下OTF呈现效果更好。区别在于它们的创建方式。

上面的链接相同


字体使用了称为字体提示的东西

字体提示。基本上,字体提示是一系列指令,通过使用光栅化网格背景作为参数动态更改字体呈现方式,调整轮廓字体的显示,使其与光栅化网格对齐。选择配备良好提示的高质量字体对于非模糊易读的文本至关重要。

许多人选择字体,因为他们喜欢它们的外观,或者他们使用的字体的斜体版本很受欢迎。在选择字体时,选择最酷的不是最重要的,最重要的是选择呈现最高质量且最易于阅读的字体。

呈现良好的字体:

不仅有呈现良好、支持连字的字体,而且我认为最好的呈现字体总是免费的。以下是使用字体提示并具有顶尖呈现能力的字体。

  1. JetBrains Mono(JetBrain的字体和我个人最喜欢的字体)
  2. Cascadia Code(2019年微软的编程字体)
  3. Fira Code (不算很老,但也不是很新,深受众多人喜爱)
  4. Fira Mono (没有连字,与Fira Code不同的字体)
  5. Consolas (经典之一)
  6. Menlo (另一个经典)

前四名之所以排在榜首,是因为它们每隔几个月就会得到更新。我认为Menlo和Consolas没有定期更新,但它们也不被遗忘,每一两年会得到更新。



尽我所能给出一个坚实的答案:

_"让VSCode的呈现方式与Visual Studio IDE相似,可能不太可能以100%的满意度得到,因为要考虑到各种不同的因素,这可能是一件极其困难甚至不可能的事情。您可以尝试使两个软件呈现的方式更加相似,但不是在功能上,而是在外观上。确保影响呈现的所有内容都是最新的,例如编辑器、IDE、字体、工具等可能会有很大帮助。从那里开始,您可以尝试不同的版本,并查看是否有旧版本的VSCode呈现方式更适合您。您还应该调整显示器的设置。我发现我可以通过显示器面板下的按钮完成很多工作。检查Visual Studio是否有任何渲染设置,VSCode可用的选项不多,但也许Visual Studio IDE有(我已经5年没用过IDE了,所以不确定它是否有)。



最后一点:

有一个工具可能会对你有帮助,我没有使用过它,因为它不是针对VSCode的,而是针对Visual Studio的,但它可能会给你比现在更多的控制权。这个工具叫做…”_




网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接