在一个有近 5000 行的 org 文件中,除非我关闭font-lock-mode
,否则滚动速度慢得令人难以忍受。 检查profiler
中发生了什么,减速的主要原因是函数org-do-latex-and-related
,在org.el
中定义。似乎它陷入了一个while
循环:
- org-do-latex-and-related 16587 54%
- if 16587 54%
- progn 16587 54%
- catch 16587 54%
while 16587 54%
此函数的目标是对组织缓冲区中的 LaTeX 代码片段进行字体化。但是,我庞大的组织文件中没有任何 LaTeX 代码片段。有谁知道为什么这个函数在没有 LaTeX 代码的 Org 文件中使用了这么多资源?
我在尝试解决组织模式挂起的问题时发现了这个问题。我认为我在 https://emacs.stackexchange.com/a/60446/12751 上发布的答案可能会有所帮助。
你有没有可能排很长的队?
请参阅 https://emacs.stackexchange.com/questions/598/how-do-i-prevent-extremely-long-lines-making-emacs-slow
我通过 [babel][1] 运行带有可执行源代码的组织模式,其中一个默认的 [result type][2] 将所有结果放在一大行上,我的 emacs 对C-g
或ESC
没有响应,以至于我总是在扼杀这个过程。
C-x =
(什么光标位置(表示列=386996
Emacs 27 现在默认包含so-long-mode
。转动那个立即向我展示了问题所在。
您可以通过(global-so-long-mode 1)
全局启用它(参见[这么长的文档][3](。
这将使您退出主要模式进入so-long-mode
让您有机会在切换回原始模式之前修复长线。