提升 Markdown 的编辑性能

Emacs中编辑 Markdown 表格时, 如果表格特别大的时候, 删除表格内容的性能非常慢。

今天暂时找了一个临时的解决方案, 分享给大家:

(setq-default markdown-mode-font-lock-keywords
              (cl-remove-if
               (lambda (item) (equal item '(markdown-fontify-tables)))
               markdown-mode-font-lock-keywords))

markdown-mode 的1万行代码写的有问题, 当表格特别大, 表格里面有很多连接时, 会产生大量递归搜索和GC操作。

4 个赞

大赞!那天我就抓了1000条书籍的信息在md文件里,就卡了。 但我发现我这是因为 auto-space-mode,markdown模式我就只能关了这个mode。 感觉那个表格像素对齐的模式valign-mode 也对表格有影响。

  (define-minor-mode auto-space-mode
	"在中英文之间自动添加空格的模式。"
	:lighter " Auto-Space"
	:global t
	(if auto-space-mode
		(add-hook 'post-self-insert-hook 'add-space-between-chinese-and-english)
      (remove-hook 'post-self-insert-hook 'add-space-between-chinese-and-english)))

markdown-ts-mode不知道怎么样了,对于这些问题性能会不会好些呢

感觉涉及到表现层,Emacs 就软弱无力…

用我写的wraplish吧

Emacs的markdown-mode洋洋洒洒1万行Elisp代码,正则递归后遇到带连接的表格, 直接递归产生大量GC。

本来准备周末喝两杯后, 用 cloel 和 Clojure 重写markdown-mode。

但是微醺后,发现直接用 markdown-ts-mode 替换 markdown-mode,性能终于飞起啦, markdown-ts-mode 的语法高亮细节比不上 markdown-mode, 但是速度快很多哇。

markdown主要就是写写博客和README, 简单语法高亮够了。

果然喝酒后代码思路和常规路线不一样, 哈哈哈哈。

3 个赞

作者好几个月没更新了, 高亮确实差一点,我还是老老实实先用markdown-mode吧…

1 个赞

无法理解…就这么简单的语法,还需要 10000 行代码

但是 markdown-ts-mode 在写表个的时候按tab键不能跳到或创建下一个单元格。

这好解决,等我遛完狗回去看看

猫大,遛完狗直接把markdown-mode替换了吧。打磨成lsp-bridge那样品质的呗。

这样缝合一下就行了,渲染用markdown-ts-mode, Tab用markdown-cycle命令

1 个赞

需要时间哇,我尽量下一个插件解决emacs更大的问题,markdown-mode这个对我的挑战不够

markdown-ts-mode 语法高亮不够丰富的问题, 我晚上折腾一下, 应该会好很多。

狠狠的羡慕了,随心所欲的修改工具的能力!