org-mode 编辑大文件,慢到要死了

emacs的org-mode在一万行文本,80来个entry情况下,只要一折叠,emacs就完全死硬、光标不闪烁,完全不可用了。

该怎么办呢?

先不忙说把文件分成若干小文件的问题,我想确认这是不是就是org-mode的极限了?


已经解决了。思路如下

1. 下面帖子,让我意识到问题在于linum-mode效率低下造成的。

2. 下贴:让我知道直接使用emacs26内建的display-line-numbers-mode,解决了效率问题,但是我的emacs中,行数没有右对齐。

3. 下贴,让我知道设置(display-line-numbers-width-start t)一直为真,可以实现右对齐。我是在emacs的C-h v界面中直接设置为t然后点击“save and apply”,就实现了永远右对齐。

上面三个帖子,有效地帮助我思考和解决了问题,谢谢这三位前辈!

我把上面三个帖子地最后一贴点击为“解决”,是为了对浏览主题的网友表示,本帖问题已经解决了,本帖可以直接参考。以后我也这样,把多个有效回帖都引用到一楼,然后在最后一个有效步骤地帖子上设置为“解决”。

4 个赞

也可能是外部原因。See also

1 个赞

衷心的谢谢您!

您超快的给予我帮助,并且给予我有价值的参考资料。

阅读了您给我的帖子的全文后,看到有前辈提示问那位贴主:开行号了吗?

我受到启发,立刻在.emacs中将语句注释掉 ;;(global-linum-mode nil)

没有行号了,然后我那1万行的org文件折叠到一级entry后光标移动溜溜的!

哈哈哈,困扰我1个月的问题解决啦,太感谢了。我半小时前刚刚注册的,以后就泡在这里了。

下一步如果要显示行号的话,我找找有没有代价更低的实现方案,我想一定会有的。那个帖子里面就有一些讨论了(visual-line之类的吧)

我惊讶于网站的历史信息的汇总管理如此有效。

谢谢您,谢谢网站!

laub 2018-10-30

1 个赞

能帮到你就好啦,哈哈😄

谢谢,晚安哦!

Emacs 26 自带 display-line-number-mode,效率比linum高,但是不知道高到什么程度。

3 个赞

谢谢前辈。

已经用上了,效率很高,高到在我这1万多行的org文档中感觉不到带来过开销。这就是我要找的东西,而且显示的字体颜色是很低调的浅灰色,perfect!

1 个赞

目前体验上唯一不同的是linum右对齐了(扎眼的绿色),display-line-numbers-mode 没有右对其(低调灰色)。不过没关系了,先保证功能和性能,以后再考虑face。

谢谢!

右对齐?我没看出区别来啊

页面显示图片有一点问题。

您点击能看到的那副图片,可以看到一张长条竖着的图片的全貌(从行1~行7511),然后点击向右的方向键,可以看到另一张竖着的图片。

您对比这两张图片的行号,可以看到灰色(Emacs26原生模式)的行号数字没有右对其,绿色(linum模式)是右对齐的。

我没有这个问题,不太清楚为什么你的不行

嗯那,没关系的,我的那个问题我后面慢慢来查吧。有现在的功能已经很好了。谢谢你!

晚安!

可能是别的mode影响的,比如我的经历:各种line number mode都会造成orgmode处理大文件奇慢;关了linum,orgmode处理几万行文件对它来说还是小case

是的。

我现在对比明显,在这个10000行的org文件中,不显示行号,就各种流畅。用linum,就卡死了;用前面朋友介绍的display-line-numbers-mode,就继续保持流畅。

这个display-line-numbers-mode 确实性能很好,启用它感觉不到有开销。

不过linum的功能应该更多一些。没关系的,现把自己需要的那一层功能找到吧。

试试设置 display-line-numbers-width-startt(默认值为 nil),然后重启 display-line-numbers-mode

2 个赞

现在因为经常使用到 pdf-tools 等工具,这些工具是自己经常使用到的工具,另外一方面这些工具对行号的支持很差,出现很多问题,现在我干脆关闭掉行号。

org-mode编辑文件卡,一般来说就是两种情况,一是linum-mode惹的祸,另外一个就是org-bullet-mode

1 个赞

谢谢您!

用你的方式彻底解决了右对齐的问题。

谢谢你们大家!谢谢网站!

我太开心了。

点击看全图的对齐效果:

重启emacs之后又没有对齐,我再琢磨一下。

这次是真的解决了。我直接把display-line-numbers-width-start的默认值改成了on,然后apply and save,就可以了。偶也!

为啥我的是nil 也是右对齐呢?

不太清楚。

我的情况是在nil的时候

1.行数少就可以右对齐,比如我的.emacs文件只有1000多行 2.行数多就有问题,比如帖子里面说的我的org文件7000多行

也可能不是因为行数,而是因为org文件中的块,或者别的什么的造成的吧。