显示行号后,文本比较大时移动光标容易卡顿?有什么解决方法吗?

比较了linum-mode 和 nlinum-mode,貌似都有问题

1 个赞

文件较大时关闭行号,我是这么做的,具体可以参考我 Github 上面的配置。

你好,@guanghui.qu

我目前有两个问题: 1.如您所说,文件较大时,打开linum会卡顿 2.在lua模式下(目前发生的情况,不一定是特指这种模式),在使用git管理时,打开行号。当修改的行数很多时,git会高亮修改的行,在这之后,移动光标会非常卡顿。若关闭行号,则会很流畅。

文件总大小2000行左右,这样的文件应该不算大文件吧?

我使用的时Steve Purcell的配置,只加了显示行号。

Emacs 自带的 linum-mode 的计算方法本来就很低效,要解决这个问题或许需要让 Emacs 提供一个 C 层面的获取行号的 API。

另外,可以试试不用总显示行号,我就觉得总显示行号没什么意义,还占空间,也不美观。

确实,我profier出来的结果是linum-mode 和 indent-guide-mode导致的。 我想多请教一下,如果文件比较大,有什么优化方法吗(关闭我说的两种模式的情况下)?

我觉得既然这两个 mode 对性能影响比较大,那么在文件比较大的时候不开启这两个 mode 应该就可以解决了吧。 我对于超级大的文件,比如大于 1M 的文件,我直接使用 fundmental-mode 了,也不开启行号。

文件太大就不要用相对行号,用绝对行号,如果绝对行号也卡,就直接关闭行号好啦。

因为,如果用绝对行号还会感觉卡的话,那说明你的文件很大了,这么大的文件一般都是配置文件和log吧

如果不是编程的话,开不开行号无所谓,我平时就不开行号,因为皮肤和行号不兼容,色调偏差看着难看。。。

实际感觉,其实开不开行号差别真的不大,纯粹个人习惯而已。

https://elpa.gnu.org/packages/vlf.html 瞬间打开 100 多 M 的数据库 dump,有行号、有语法高亮,穿梭流畅。

2 个赞

这个问题终于有救了,我是在windows上和linux上都测试过了,在最新的emacs26版本中使用 (when (version<= “26.0.50” emacs-version ) (global-display-line-numbers-mode)) 完美的解决了这个问题,详见 https://www.emacswiki.org/emacs/LineNumbers

1 个赞

我现在基本关闭行号。感觉行号在编程过程中这个用处不打,用的地方很少。另外,自己还使用pdf-tools 等插件,这些插件对行号的支持本来就是不太好。因此,索性就关掉这个行号了。从最早就不使用这个行号了,没有感觉缺少什么东西。反而现在感觉开了行号感觉不自然。

有人在你身后指点的时候就有用了 :rofl:

使用display-line-numbers-mode显示行号时,有时按住C-n或者C-p上下导航太快,有的行会被隐藏,光标退回去才能恢复显示。有人有遇到同样的问题吗?

这个是emacs 27的bug

多谢,现在的最新版本修复了吗?

28里修复了

:+1:感谢,等27.1发布再试试看,不行再编译一个新的28。

(global-display-line-numbers-mode t) ;;试试这个

我打开一个1万行的文本一点不卡