流畅编辑超大文件的解决方案

用隔壁的例子看来这个 bidi 真的影响很大。建议配置里加上

(setq-default bidi-display-reordering nil)
(setq bidi-inhibit-bpa t
      long-line-threshold 1000
      large-hscroll-threshold 1000
      syntax-wholeline-max 1000)

全局关了。不是做比如阿语外包真的用不上 bidi。有人可能看到 bidi-display-reordering 的 docstring 说「不应该改」,但是首先是因为在 emacs 维护者眼里为了大文件性能牺牲 bidi 是个不正常的需求,像我用 emacs 这么久了从来没有在意过大文件性能,所以他们测试功能的时候从来没有关闭过 bidi 的缘故不推荐,其次设置了这个变量 emacs 也不会原地爆炸,Emacs 25 其实就有人在用了,最多就是有些滥用 bidi 功能的包出点问题,给不同模式单独设置这个变量就行了。然后如果实在觉得用这个邪道设置心里不安,Emacs 维护者推荐的替代设置是 Doom Emacs 也用的

(setq-default bidi-paragraph-direction 'left-to-right)

还有这几个 threshold 变量默认值都很大(五万)而且还在文档里说「没有必要改」,但我觉得当正常文件都不会超过 80 字一行,偶尔不小心打开个大文件也不会有五万字这么多,就是应该改小点,一千都已经太保守了,五百可能就值得优化了。

建议大家可以把这个分享出去,我自己是不常用大文件的,但如果这个能对大文件 90% 有效那我觉得也没必要再 round trip 用外部程序代理一遍了。用井行是可以在体感上提升很多,不过我估计很多人也是愿恴用一个有轻微不足但是简单的方案的。

56 个赞