提升 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操作。

5 个赞

大赞!那天我就抓了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, 简单语法高亮够了。

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

6 个赞

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

1 个赞

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

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

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

1 个赞

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

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

2 个赞

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

1 个赞

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

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

真的很羡慕猫大的编程能力!猫大哪天闲来无事可否结合自身经历介绍一下如何才能达到你这样的水平? :pray:

多读书,少攀比,不内耗。

剩下的能量,持续做喜欢的事情,不要用力太猛,明天没的玩。

也不要三天打鱼两天晒网,每天看一点书,每天写一点代码,但行好事莫问前程。

唯“坚持”二字

10 个赞

谢谢猫大鼓励~

猫大,折腾的咋样了?坐等呢。

发现vim编辑markdown文件,里面的表格是像素对齐的,虽然是 | 分割的。很规整。