我使用hide-show折叠文本的特定部分,并使用下面的代码来显示隐藏行数。
然而,当文件够大时(如C++ 或 LaTeX),并且折叠所有区域(从而创建数十个覆盖层),Emacs 变得非常缓慢,以至于无法使用。甚至将标记从一行移动到另一行也需要大约半秒钟左右。
有没有办法解决这个问题?
(defun display-code-line-counts (ov)
(overlay-put ov 'display
(format "...%d..."
(count-lines (overlay-start ov)
(overlay-end ov))
))
(overlay-put ov 'face '(:foreground "red" :box (:line-width 1 :style none)))
)
(setq hs-set-up-overlay 'display-code-line-counts)
编辑:原来emacs变得很慢的原因是由于linum小模式,它会创建成千上万个(隐藏的)叠加层,并使用hide-show进行折叠。有没有方法可以解决这个问题?或者有更好的行号模式吗?