emacs遇到长行,比如一行有1w的字符,光标卡顿严重,有没有解决办法?

emacs遇到长行,比如一行有1w个字符,光标卡顿严重,有没有解决办法?试过-nw也一样的卡。

试试 so-long-mode ?

试过了,用so-long有一点点改善,但遇到长行时还是卡顿。另外我也试了gvim,非常流畅。

没什么好办法,什么场景需要编辑这么长的文件内容呢?如果只是查看不编辑的话,可以先折行再看。

是一种log文件,没法修改格式。只需要查看,不编辑。

默认设置是wrap at window edge。光标一行一行的往下移动,移到长行内部时,光标仍然在wrap at window edge后的行内一行一行的移动。

其实我想C-n不考虑长行的行内,直接跳到真实的下一行。

设成trancate long lines后,光标移动规律是对的,直接跳到真实的下一行,但速度还是会慢一些。

没办法,Emacs 里处理这种还是不太行。
可以考虑用外部程序处理好格式之后再看,不然就算流畅了,一万多字符一行也没办法阅读。

好的,谢谢!我再想想。

如果没有秘密的话, 可以把文件发出来看看, 这种超长行的文件查看, 我应该有办法, 不忙的话, 今年12月份之前找一个周末就可以实现。

6 个赞

是什么原因,vim里面可以流畅处理,emacs就是不可以呢,内部的哪些方面影响的。

我造了个100行,每行1000w字符的文件

从行首跳到行尾或者跳到下一行,要刷几下,大概要2s

其他的操作,比如随便跳到中间删除字符,插入字符都没有延迟。

单行1亿的话,确实卡。

整体性能跟nvim差不多

现实中很少这样的纯文本。

试试:

  1. 运行命令:

    $ emacs -nw -Q --eval "\
      (progn
        (switch-to-buffer \"*scratch\")
        (insert \"(prin1 global-map (current-buffer))\")
        (eval-buffer))"
    
  2. 长按 C-n 向下移动光标 (至少滚动3屏),看看会不会跳帧/卡顿。

C-x ] 然后 C-p 比较有效。 困难不是往前走是往后。

向后翻的确,哪怕用终端版本也会很卡

但是不管是 GUI 还是 terminal (setq bidi-inhibit-bpa t) 都能显著解決这个问题。(Emacs 29)

你们的电脑都比我的好。

你这不会是向前翻都比较困准吧?我用的是 2015 年的 MBP,2.2GHz 的 i7 配 16GB 放现在也没法做什么机器学习,但用 AVX 做一些计算还是挺可以的。

emacs wiki 有提到可以用这个测试长文件

C-n看起来还算流畅,用鼠标滚轮和触摸板滑动就非常卡了

也可以順便试试 C-h h 打开 hello 文件会不会卡。

用如下配置在 Emacs 29 打开

哪怕在 GUI 打开 javascript-mode 的 font lock 用触摸板都只有轻微卡

4 个赞