中英文折行真・终极解决方案

中英文折行终极解决方案 继续讨论:

之前写的虽然能用,但是还是有各种小问题,这次我改了Emacs的redisplay,直接从源头解决问题。因为是native实现,没有任何性能问题,也没有edge case。

具体效果和之前的flywrap一样,支持中英文混合的折行,并且能保证逗号之类的字符不在行首出现。

因为要加入Emacs core还要各种改和讨论,时间很长,先放出来给感兴趣的坛友用。(我是在Emacs master上写的patch,不知道能不能打到27和26上。)不过谨慎使用,虽然我用了两天没啥问题,但是把Emacs搞挂也不是没可能。

打完patch编译以后,直接像之前一样toggle-word-wrap或者visual-line-mode就可以了。如果想要逗号不在行首出现这种高级功能,运行(load "kinsoku.el")(不要用require)。

https://gist.github.com/casouri/7cfab16472a19ae0c786448f0f5e2e6b


更新:这里是Emacs 28的branch:

Emacs 27的:

18赞

可以fork https://github.com/emacs-mirror/emacs 然后推自己的分支上去, 主要考虑国内部分用户没法直接访问gist. 而且后续要改的话直接push到branch里比较好管理

1赞

整好了,字数补丁。

1赞

太效率了!(自己发出了咕咕的声音)

1赞

赞👍,中文Emacs用户的福音啊

难道是传说中的肚底之蛙

要是硬折行就完美了

啥叫硬折行?

应该就是用回车分割的折行吧,而不是那种看起来是两行,实际上还是一行的那种折行

主要是回车折行本来就有,不知道问的啥

自带的回车折行不是自动的,而且一旦删改内容要重新fill,aggressive-fill-paragraph解决了一部分问题但是有些情况下还得手动fill

期待合并入 emacs master 的一天

试了一下,配合kinsoku.el感觉在org-mode里实在太爽了。期待并入Emacs master

很有用,期待期待。

更新了一下patch。注意是force push的。

这个难道不应该提交上游吗? :grinning:

提交上游要很久,现在先发出来方便大家用。

1赞

想知道这个patch提交到上游最近有什么进展吗?

作者不用论坛啦,还是发邮件问吧

此patch已经进入上游,emacs28的branch了。真开心

1赞