首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何提高emacs在查看大文件时的性能?

如何提高emacs在查看大文件时的性能?
EN

Stack Overflow用户
提问于 2013-08-19 22:44:21
回答 3查看 14.7K关注 0票数 28

查看大文件时,Emacs有时会挂起。但是使用(global-font-lock-mode -1)是很快的。

我用的是前奏的叉子。

Emacs版本: 24.3可可系统: OS X 10.8.4

更新:我发现(setq jit-lock-defer-time 0.05)是一种提高滚动速度的方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-19 23:08:12

为了帮助处理大文件,我安装了自己的find-file-hook,它打开基本模式(避免字体锁定),关闭撤消,并将缓冲区设为只读,以避免任何意外更改(对大文件进行不必要的备份)。

代码语言:javascript
复制
(defun my-find-file-check-make-large-file-read-only-hook ()
  "If a file is over a given size, make the buffer read only."
  (when (> (buffer-size) (* 1024 1024))
    (setq buffer-read-only t)
    (buffer-disable-undo)
    (fundamental-mode)))

(add-hook 'find-file-hook 'my-find-file-check-make-large-file-read-only-hook)

显然,可以根据您认为合适的方式调整阈值。

票数 32
EN

Stack Overflow用户

发布于 2015-02-11 22:47:51

我通常展开较长的行,并按标签(如HTML、XML、JSON)进行缩进。

为了使这种操作成为可能,我补充说:

代码语言:javascript
复制
(setq line-number-display-limit large-file-warning-threshold)
(setq line-number-display-limit-width 200)

(defun my--is-file-large ()
  "If buffer too large and my cause performance issue."
  (< large-file-warning-threshold (buffer-size)))

(define-derived-mode my-large-file-mode fundamental-mode "LargeFile"
  "Fixes performance issues in Emacs for large files."
  ;; (setq buffer-read-only t)
  (setq bidi-display-reordering nil)
  (jit-lock-mode nil)
  (buffer-disable-undo)
  (set (make-variable-buffer-local 'global-hl-line-mode) nil)
  (set (make-variable-buffer-local 'line-number-mode) nil)
  (set (make-variable-buffer-local 'column-number-mode) nil) )

(add-to-list 'magic-mode-alist (cons #'my--is-file-large #'my-large-file-mode))

请注意,我不使用find-file-hooks,因为magic-mode-alist通常为空,并且具有优先级。如果我添加find-file-hooks,它首先通过nxml-mode验证XML文件,然后切换到fundamental-mode

我按正则表达式拆分行,对于XML:C-M-% >< RET >NL< RET !

在Emacs拆分长行之后-可以启用许多*-modes并重新缩进代码。

票数 4
EN

Stack Overflow用户

发布于 2019-02-16 18:42:30

这可能是一种技巧解决方法

M-x壳层

然后

减少your_large_file.txt

你就可以继续了

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18316665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档