中英文混排时候的自动折行?

求教 怎么到处富文本邮件,我查看输出列表里没有啊? 好神奇呀,好想知道 :joy:

M-x org-mime-org-buffer-htmlize, 需要 org-mime 包。

1 个赞

我也是换行的忠实支持者,但觉得 auto-fill-mode 不够用,所以用的 aggressive-fill-paragraph-mode

1 个赞

好的,在这里 如何改变中文字符宽度

This has been fixed in Emacs 28. You can now say (setq word-wrap-by-category t) to make Emacs respect kinsoku rules when wrapping lines visually.

挖个坟,今天读这个链接发现这个问题在 Emacs 28 中被修复了,native-comp 也适用,感叹一下,好棒啊!

10 个赞

问一下,中英文混排时自动拆行,这个在org的表格里面能用吗?

比如,我这个贴子里面 org-mode超链接文件的打开方式 org-file-apps - #2,来自 wsug 自动生成的表格,我控制了文件名称这一列为显示40个英文字符,20个中文(一个中文算2个英文字符),超出40个英文字符自动折行。但这个是后端生成org表格时写死的(用php的mb_strimwidth和mb_strwidth函数判断)

如果能用表格自动布满当前emacs窗口,超长行拆行(而不是显示…),这样和html的table就更像了

你好,你的org的配色和bullet图标很好看。请问是怎么实现的?

這個圖裡面沒有英語單詞啊,怎麼說明能夠解決主題的呢?我的也是28版,但仍有中英文折行不合理的問題。

2 个赞

GNU Emacs 29.0.60 (build 1, aarch64-apple-darwin22.2.0, NS appkit-2299.30 Version 13.1 (Build 22C65)) of 2023-01-12

测试文字:

make Emacs respect kinsoku rules when wrapp這個圖裡面沒有英語單詞啊,怎麼說明能夠解決主題的呢?我的也是28版,但仍有中英文折行不合理的問題。This has been fixed in Emacs 28. You can now say (setq word-wrap-by-category t) to make Emacs respect kinsoku rules when wrapping lines visually.這個圖裡面沒 word 有英語單詞啊make Emacs respect kinsoku rules when wrapp,怎麼說明能夠解決主題的呢?我的也是28版,但仍有中英文折行不合理的問題。

什么都没开:

开了 (global-visual-line-mode 1)

开了 (global-visual-line-mode 1)(setq word-wrap-by-category t)

6 个赞

目前我遇到不符合自己使用习惯的是当一段没有空格的英文过长(如长链接),前面有空格时,会另起一行,或许需要针对链接再做处理。

开了 whitespace-modedisplay-line-numbers-mode 以便突出显示:

2 个赞

非常感谢!(。◕◡◕。)ノ

谢谢安利! 你不说我都不知道有这个功能.

用这个配置可以让更多字符折行,不仅仅是空格。

(setq dlukes/org-category-table (copy-category-table))
(dolist (char '(?- ?+ ?_ ?/ ?| ?\ ?. ?,))
  (modify-category-entry char ?| dlukes/org-category-table))

(add-hook! '(org-mode-hook markdown-mode-hook)
  (set-category-table dlukes/org-category-table)
  (setq-local word-wrap-by-category t)
  (visual-fill-column-mode))

dotfiles/emacs/doom/config.org at 11ecdaa4ea36c57071a864d4df73ba8900928375 · dlukes/dotfiles (github.com)

4 个赞

2024.12.08 Sun 我是新用户,刚刚安装了29.4版本,这个问题又出现了。 只要中英文混合,就会出现折行异常。

【更新】2024.12.08 Sun 11:02 看了这个链接后,在 config.el 中添加了

(setq word-wrap-by-category t)

重新启动Doom Emacs,问题成功解决!

最完美的方案是 Knuth-Plass line-break 算法 :joy:

这是西文断行算法,对中文不见得很好用,也要额外处理禁则之类。

禁則之類 是啥。换行不好看得原因不就是要保持英文得单词阅读友好嘛,中文似乎没有什么困难,一个字一个字换行。

soga,紫薯布丁