Atom / VS Code 在不重新编译的情况下启用 MacType - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
plqws
V2EX    Windows

Atom / VS Code 在不重新编译的情况下启用 MacType

  •  1
     
  •   plqws 2015-07-29 16:50:26 +08:00 4176 次点击
    这是一个创建于 3783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    参考/翻译/扩展
    原文地址: http://www.jianshu.com/p/7432489e0d3b

      很多使用 Atom / Visual Studio Code 的朋友会发现 MacType 无法正常地渲染,其原因和 Chrome 37+ 失去渲染功能一样,是因为 Chromium 默认开启了 DirectWrite 字体渲染功能,所以就造成了 MacType 失效的后果。
      通过谷歌参阅了很多资料,Github 上全都是推荐用开启 CSS3 抗锯齿的方法,但是我尝试后效果并不明显。还有一种办法就是 Clone 一份源码主动修改 Flags 的设置,然后重新编译,我觉得太麻烦就先不考虑这种做法了。返回搜索结果,有一篇日语的搜索结果吸引了我的注意:

    谷歌搜索结果

    原文如下:(地址 http://silight.hatenablog.jp/entry/2015/07/02/001518)

    2015年6月26日に1.0.0が公されたAtom Editorですが、WindowsではDirectWriteがデフォルトで有になっており、MacTypeなどのgdi++系ソフトとの相性が良くありません。

    一DirectWriteをにする方法があるのでここにいておきます。

    Atom Editorは了しておきます。
    「app.asar」をバイナリエディタ(Stirlingがオススメ)できます。
    所はC:\Users\(ユザ名)\AppData\Local\atom\app-1.0.0\resources\app.asar
    「'direct-write': true,」で索し、「'direct-write':false,」にきえます。
    trueの前の半角スペスはくてもいいので、半角スペス+trueをfalseにきえます。
    残念なことに、app.asarファイルはバジョンアップで更新されるので、バジョンアップの度に回やらなければいけません。

    一Atom Editorのソスコドを(Electronも含めて)みましたが、点ではこれ以外に方法はさそうです。

    翻译后,大概是这样的流程(Atom 的解决方案):

    • 下载一个 16进制编辑器,原文推荐 Stirling 但是我没有搜索到,所以我就用了 UltraEdit。
    • 用 16进制编辑器 打开 Atom 安装目录下的 /app-1.0.3/resources/app.asar (版本号自己替换),如果显示的是一堆16进制文本,请按快捷键 Ctrl+H 切换至字符串编辑模式。
    • 搜索 'direct-write': true, ,修改为 'direct-write':false,,其中,false:冒号之间不能留有空格,要保持字符数目一样,不然会导致 Atom无法启动。 (具体原因我也不确定,以前用不同长度的字符串 Hex 替换过 Java 的 Class 文件并没有出现过类似的问题,可能是因为有类似 Java 的 META-INF 的完整性检验机制吧)。

    之后就可以启动 Atom,会发现 MacType 已经生效了。

    然而 Visual Studio Code 就更简单了,连 16进制编辑器 都不用了!

    • 退出 Visual Studio Code
    • 用合适的代码编辑器(VSCode 自己也可以 _(:з」∠)_)打开 VSCode 安装目录下的 /app-0.5.0/resources/app/window.js,找到 TicinoWindow 这个函数,其中有 options 变量,值是 JSON 类型的。我们只需要在这个 JSON 类型变量的根节点加上:
    'web-preferences': { 'direct-write': false } 

    修改后这个变量的效果就像这样子(缩进重新排的 /ω\):

    var optiOns= { width: this.windowState.width, height: this.windowState.height, x: typeof this.windowState.x === 'number' ? this.windowState.x : undefined, y: typeof this.windowState.x === 'number' ? this.windowState.y : undefined, 'min-width': 200, 'min-height': 80, show: showDirectly, title: env.appNameLong, 'web-preferences': { 'direct-write': false } }; 

    然后保存退出,启动 Visual Studio Code,MacType 可以正常渲染了!

    原文地址: http://www.jianshu.com/p/7432489e0d3b

    5 条回复    2021-02-25 18:07:05 +08:00
    zerh925
        1
    zerh925  
       2015-07-29 23:13:47 +08:00
    好怀念。。。
    初中在极限(themex.net)就跟着mayi从GDI++开始折腾windows下如何使用LiHei Pro。
    当年梦想就是有一台MacBook
    现在少了好多当年那种折腾劲了
    ayanamist9
        2
    ayanamist9  
       2015-08-09 07:35:16 +08:00
    谢谢,MacType真是Win下的神器。
    ThisDay
        3
    ThisDay  
       2015-10-13 10:19:48 +08:00
    终于让我找到了!
    bluefalconjun
        4
    bluefalconjun  
       2015-11-20 16:11:35 +08:00
    Nice!!!
    测试 atom 1.20 版本有效.

    另外直接使用 vim 编辑的话 app.asar 文件还是比较清晰的.改起来比较方便.
    wanaiqing
        5
    wanaiqing  
       2021-02-25 18:07:05 +08:00
    请问现在的版本有没有解决方案?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2739 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 09:13 PVG 17:13 LAX 01:13 JFK 04:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86