Sublime Text 4 没人吐槽一下中文字形问题吗?

2023-08-17 14:57:21 +08:00
 kidzgy
https://pic.imgdb.cn/item/64ddc475661c6c8e5423a0e7.png
如图所示,文本内容的字形问题可以通过"font_face"参数设置成别的字体来解决,但是标签上的字体应该怎么解决呢?
没人觉得看这种港台字形觉得难受吗?
1747 次点击
所在节点    Sublime Text
15 条回复
Kisesy
2023-08-17 15:06:44 +08:00
可以 设置 "theme_font_options": ["gdi"] 解决
liujavamail
2023-08-17 15:08:25 +08:00
我的倒是正常的, 不知道是不是哪个插件起作用了
kidzgy
2023-08-17 15:12:26 +08:00
@Kisesy 确实可以,gdi 后字体是恢复内地字形了,但是英文字体看起来又非常别扭,不知道有办法自定义标签上的字体吗?


另外想请教个问题:
标题栏显示完整路径的时候,能不能显示文件名,再显示路径呢?
比如这种效果:测试.bat [D:\Personal\Desktop] ,而不是 D:\Personal\Desktop\测试.bat
Kisesy
2023-08-17 15:17:59 +08:00
@kidzgy 不太了解,也许可以写插件解决
kidzgy
2023-08-17 15:19:54 +08:00
https://pic.imgdb.cn/item/64ddc9f0661c6c8e54367dfd.png
可以看到设置 GDI 前后的区别,设置 GDI 后,英文字符之间有莫名其妙的空隙。
Constantping
2023-08-17 15:36:18 +08:00
這不是港台字形,從「門」看,大概全是日本字型。
kidzgy
2023-08-17 15:40:04 +08:00
@Constantping 没有对这个太较真,只知道不是内地字形,看起来很难受,我记得有别的外国编辑器也是这样的,明明选的简体中文语言,字形用的却不是内地的
ohayoo
2023-08-17 18:16:56 +08:00
修改设置之前:


修改设置之后:


内容是变了,但标题还是那样,所以这么多年 一直就没管了
xxx027
2023-08-17 18:25:33 +08:00
win 的问题。CJK 字体顺序依次是日文、港台、内地。
你如果不需要前面两种字体,删掉就可以了,一了百了。
在注册表的 Fonts 项下将游哥特体( Yu Gothic )、微软正黑体( Microsoft Jhenghei )的值改为空进行软删除。
kidzgy
2023-08-18 00:41:55 +08:00
@xxx027 不是很明白,不知是具体在哪个注册表值下?是在 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 下的值 Microsoft JhengHei 和 Yu Gothic UI 删除掉吗?

不知道删除这两个值后,会对其他软件识别日文有什么影响吗?
AthensBird
273 天前
Sublime Text 4 解决中英混排换行的问题了吗?
kidzgy
273 天前
@AthensBird 没有
xxx027
157 天前
我在你的这个帖子下回复吧。
首先你设置了 font_face 却没有影响到标签字体,说明这个不受软件自身控制。
然后你在另一帖提到在删除了那些键值之后,可以正常显示了,那就说明是遵循了日、繁中、简中这个回落顺序,再次强调不用删除韩文的键值。
我在另一帖已经对字体回落有了比较详细的说明,请你再看看。因为我没有用这个软件所以没办法进一步提供更多的有效信息,你先确认下在系统语言文字设置为简中和非简中时,该软件的标签字体显示是否有变化(系统是原始键值,没有删除或修改)。

下面分 2 种情况:
1 是有变化,简中语言下标签页的字体就是雅黑,说明软件在标签页字体这一部分遵循的是系统的 CJK 字体回落,因为简中语言下的 win 系统的回落是简中优先。这种情况下你是可以手动修改 SegoeUI 的字体回落顺序来手动修改以达到这种效果的,你对比一下两种语言环境下 SegoeUI 的回落顺序就清楚了。我这里说到的简中语言是前述的系统语言文字设置为简中,不是该软件界面设置为简中,怕你混淆,特此说明,后不再赘述。
2 是没有变化,系统语言文字环境无论是否是简中,标签页的字体回落仍然是日文优先。这就说明软件遵循的是其内部的字体回落逻辑,无视其他设置,这是把回落顺序写死在软件里了,无法调用 win 注册表来修改回落逻辑,因此你只能把键值删除(或者不删除键值,设置键值的值为空,只要让软件误以为不存在这些字体即可,这样是一样的效果)。

目前微软对 CJK 的回落顺序就是日文优先,只有简中语言的系统环境才是简中优先。有些软件是遵循 win 系统对此的回落逻辑,那这样就可以修改注册表自定义回落顺序。
但是有些软件(或内部组件)是直接把微软的回落顺序写死在了程序里,这样子就没办法通过修改注册表自定义回落顺序了,只有一个办法,那就是让这个软件找不到这个字体,而 win 系统是通过注册表来定义字体的位置的,所以才需要把那几个字体的键值删掉,才能欺骗软件你系统里没有这些字体。
考虑周到的软件应该是专门提供 CJK 字体回落顺序的设置,虽然就我的认知没有任何软件有这么做,绝大部分是由系统设置。

删除键值的影响就是,日文是用雅黑来显示了(不讨论繁中了,繁中的那些字体我个人是觉得没雅黑好看),我猜你可能是有显示日文字体的需求才会问可否不删除键值。
很遗憾,对于写死了回落顺序的软件而言,只能删除。

如果有显示日文的需求,有这几种解决思路:
1. 不使用写死回落顺序的软件;
2. 隔离出删除了键值的环境,比如用 sandboxie 这种沙盒来运行程序,在沙盒里删除键值,不影响外部的系统;
3. 修改微软雅黑这个字体的日文部分,用日文字型替换掉,然后把修改后的雅黑字体替换掉系统原始的雅黑字体。但只能修改五十音的部分,日文里的汉字和中文的有重叠部分,修改的话显示效果就更加不伦不类。

不删除键值的其他方法,把那几个日文和繁中字体全用雅黑的字体修改过来再替换掉系统的这几个默认字体。无论键值怎么改,无论软件有没写死,统统是雅黑。麻烦,不应采用。
xxx027
157 天前
补充其他情况,见我发的主题帖 /t/918947 的 2 楼,调用了 message box 的设置值的情况。

你需要自己确认软件有没调用这个值,这个值是和字体回落无关的。要单独设置。
kidzgy
156 天前
@xxx027 #13 感谢如此详尽的解答!看来还是直接删除注册表好一点,其实也算不上有日文韩文的需求,只是担心这样处理感觉就没那么“完美”了,所以还是想尽量探索有没有更完美的解决办法。看到你的回答,我估计就是软件写死了顺序,没办法再从注册表修改了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/966085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX