问一个笼统的问题:emacs编辑稍微大一点的文件卡顿

我是在Manjaro系统上使用Spacemacs,电脑配置:Thinkpad T450, i5,16G Ram,但是随着一些文件越来越大(上千行或者更多),比如自己的笔记org文件,写论文的tex文件.但是当行数增加道上千行的时候,明显感觉到非常卡顿,使用体验极差.不知道大家有什么比较好的解决方法.可能是一个比较笼统的问题.但是在自己使用emacs过程中,遇到大的文件(不管什么mode)总感觉很卡顿.

1 个赞

org上千行开始卡顿, 建议换doom-emacs.

我这里三万行左右开始卡顿, 只能拆开, 做一个导航org. (配置比你的低

打开13M大小org文件,除了保存比较慢其它很正常

1 个赞

是不是开启了 linum-mode 或者display-line-numbers-mode 。

disable 试试。在我这很好使,一个字流畅。

我现在默认都不开启行号。

得首先找出什么问题?然后才有可能解决。用户需要自己尝试做简单的分析,有了哪些可能降低性能的功能、怎么重现。这要求用户熟悉自己的配置。每个人的配置都也不同,别人常常只能猜,基本靠运气。

要让 Emacs 卡很容易,如下。不少插件会使用这个hook,如果其中有性能差的话,自然得卡。

(add-hook 'post-command-hook (lambda () (sleep-for 0.1)) nil t)

emacs行号我是关闭的。现在已经完全不使用行号模式了。

还有可能是org-bullet的问题

很多问题其实都是配置和其他linux桌面组件与emacs的适配的问题。(比如楼主的这个问题,其实我一开始进论坛的时候就是因为emacs操作大文件卡的问题, 最后发现是fcitx的剪贴板容量问题)

其实 我建议 用户自己配置自己的emacs配置 才是最根本的解决办法, 在这条路上 用户会跟随自己的需求来定制配置方案 避免了一些社区驱动的配置的公共妥协策略带来的特殊个体无法适应的无奈, 然后, 最根本的是着手自己的配置能够让用户更了解emacs的边边角角(e.g. 她的优点和她的缺点), 进而对一些emacs 非擅长的地方暂时留置冲动性个体满足欲望,我相信很多问题随着emacs的版本更迭会随之改善,就像现在27的原生json解析模块一样。

1 个赞

(global-so-long-mode 1) 这个或许也有帮助呢。

一个跟性能有关的问题:

不知道怎么重现,只能靠猜了。你起码应该用 Emacs -Q 测试下看看卡不卡,并把结果告诉我们。

要排除一下是不是超长行的问题,我现在都是fill,很少卡顿,卡顿都是长行造成的。建议和编程一样设置最大行宽

比如:我使用Latex-mode编辑tex文件的时候打开flyspell-mode和flycheck-mode的时候,文件超过八百行的时候就感觉非常卡,使用体验非常差。但是这两个minor-mode还是写论文的时候经常需要的mode。不知道有没有人遇到这种情况了。

刚测试了下 打开一个9818行的org文件 和其他小文件没感觉到延迟 感觉是配置问题

GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.12, cairo version 1.17.3) of 2019-11-09 Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ /usr/local/share/emacs/27.0.50/lisp/org/)

Enabled minor modes: Abbrev Async-Bytecomp-Package Auto-Composition Auto-Compression Auto-Encryption Blink-Cursor Column-Number Editorconfig Electric-Indent Engine Eyebrowse File-Name-Shadow Flyspell Font-Lock Global-Eldoc Global-Font-Lock Global-Git-Commit Global-Hl-Line Global-Magit-File Global-Undo-Tree Ivy Keyfreq Keyfreq-Autosave Line-Number Magit-Auto-Revert Mouse-Wheel Override-Global Persp Pixel-Scroll Recentf Save-Place Shell-Dirtrack Show-Paren Tooltip Transient-Mark Undo-Tree

用profiler探测一下? 如果是滚动卡,可以试下fast-scroll这个扩展,它会在滚动时,暂停语法高亮