查看大文件时如何提高emacs性能?
查看大文件时,Emacs有时会挂起。但是使用查看大文件时如何提高emacs性能?,emacs,Emacs,查看大文件时,Emacs有时会挂起。但是使用(全局字体锁定模式-1)时速度很快 我在用前奏曲的叉子 Emacs版本:24.3 系统:OSX10.8.4 更新:我发现(setq jit lock defer time 0.05)是一种提高滚动速度的方法。为了帮助处理大文件,我安装了自己的查找文件钩子,它打开基本模式(避免字体锁定),关闭撤消,并使缓冲区只读以避免任何意外更改(对大文件进行不必要的备份) 显然,可以根据您的需要调整阈值。如果您需要处理非常大的文件,您可以使用允许“查看、编辑和搜索大块
(全局字体锁定模式-1)
时速度很快
我在用前奏曲的叉子
Emacs版本:24.3
系统:OSX10.8.4
更新:我发现
(setq jit lock defer time 0.05)
是一种提高滚动速度的方法。为了帮助处理大文件,我安装了自己的查找文件钩子
,它打开基本模式(避免字体锁定),关闭撤消,并使缓冲区只读以避免任何意外更改(对大文件进行不必要的备份)
显然,可以根据您的需要调整阈值。如果您需要处理非常大的文件,您可以使用允许“查看、编辑和搜索大块大文件”的软件包。在
之后,需要使用M-x vlfi打开大文件。我通常会展开长行并按标记缩进(如HTML、XML、JSON)
为了使此类操作成为可能,我添加了:
(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))
(设置行号显示限制大文件警告阈值)
(setq行号显示限制宽度200)
(defun my--文件大()
“如果缓冲区太大,我的问题会导致性能问题。”
(<大文件警告阈值(缓冲区大小)))
(定义派生模式我的大文件模式基本模式“大文件”
“修复了Emacs中大型文件的性能问题。”
;;(setq缓冲区只读t)
(setq bidi显示重新排序零)
(jit锁定模式零)
(缓冲区禁用撤消)
(设置(将变量缓冲区设为本地“全局hl行模式”)为零
(设置(将可变缓冲区设为本地‘行号模式)为零)
(设置(将变量缓冲区设为本地“列号模式”)为零)
(添加到列表“魔法模式列表”(cons#“my--is file large#”my-large-file-mode))
请注意,我不使用查找文件挂钩
作为魔术模式列表
通常为空且具有优先级。如果我添加查找文件挂钩
,它首先通过nxml模式
验证XML文件,然后切换到基本模式
我按正则表达式分割行,对于XML it:C-M-%>NL
在Emacs拆分长行后-可以启用许多*-模式
和重新缩进代码。这可能是一种巧妙的解决方法
M-x外壳
然后
减少你的大文件.txt
你可以继续你已经回答了你自己的问题。字体锁定很慢。而且,按字面意思查找文件
很好,因为它将你置于基本模式。@abo abo那么你的建议是禁用字体锁定模式
?@abo abo abo abo我的大文件大约有8000行。我认为这是正常的。我通常使用按字面意思查找文件
。它不仅禁用了字体锁定,还禁用了主模式。当我看到文件大小很大时,我可以从dired调用它。速度会受到很多东西的影响,很难说。但是8000行并不是“太大”谢谢。但是我也想编辑这个文件。你可以看到我上面对一个“大”文件的描述。@ GoFangSU当然,只需取出<代码>缓冲区只读< /代码>的设置……很高兴它只适用于<代码>(Limun-Mead - 1)。
检查大小是否足够后,如果不够,则添加(字体锁定模式-1)
将是。它将处理所有大于指定值的图像和PDF,以便在基本模式下打开。此答案有帮助,但对我来说,禁用bidi显示重新排序是错误的enough@gavenkoa,感谢您提供此配置。我尝试了此配置,但当我使用(全局显示行号模式)时,它无法正常工作
在我的init.el中。我还尝试将其更改为(添加hook'find file hook#'display-line-numbers-mode)
这样它就不会干扰您的配置,但仍然不起作用。您能建议一个更好的方法吗?谢谢,我现在正在使用SpaceMac。当打开一个大文件时,它会在小缓冲区中警告我。less
想要一个比m-x shell
m-x term
提供的哑终端更好的终端。
(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))