Emacs阅读大文件~14GB

Moh*_*him 11 linux emacs file

最近我在我的系统上下载了emacs来编辑它声称的大文件.尝试打开大文件时,emacs给我一个超出缓冲区大小的问题.

有没有办法增加它?!我有一个内存为24 GB的系统!

Nou*_*him 9

我从来没有使用它,但vlf.el是一个elisp hack来查看过大的文件.我相信它使用insert-file-contents,但从偏移读取,以便做类似于分页的事情.

维基上有一些注释,但除了vlf.el我上面的链接之外没有解决方案.


hua*_*uan 5

键入M-:(log most-positive-fixnum 2)以查看返回值是否更接近 64 或 32。如果是后者,请编译或为自己准备一个 64 位 Emacs。还要看M-x find-file-literally大文件是否导致卡顿;它应该禁用一些耗时的操作,例如font-lock-mode.


Bas*_*tch 2

为什么要编辑 14Gb 的巨大文件?我认为这样做是错误的。

您没有足够的时间来读取如此大的文件的全部(甚至大部分)。它是什么类型的文件?(一些日志文件,一些 MySQL 转储文件???)

所以您正在该文件中搜索某些特定模式。帮自己一个忙,编写一个脚本(甚至一个程序)来执行此操作,并在需要时编辑(如果相关)您的大文件......

您很可能不关心这个大文件的大部分内容。只有几行对你来说很重要。

或者将文件分割成较小的部分(例如使用csplit),并编辑相关的较小块,然后使用 重建大文件cat

  • 这可能正是用例 - 搜索一个小模式,对其进行编辑,然后将整个内容保存回来。我不认为认为编辑器是合适的工具有什么问题。如果必须重新进行分割、编辑和重建,这不是编辑器的缺陷吗?毕竟,编辑器可以在幕后完成这些工作。 (16认同)
  • 顺便说一句,我也曾与大文件作斗争:一些非常大(大约 100M 行)的文件,其中包含 PGN(国际象棋)数据,其中有一些(少数)未正确关闭的括号。这需要修复,否则统计分析器将无法正确读取数据。短篇故事:Emacs 无法处理它,vi 可以,但出乎意料地慢,kate(kde 的东西)在切换语法突出显示后工作得很快 (7认同)
  • 我不认为编辑每一行的能力是一个缺陷 - 但您认为能够编辑每一行的内部结构必须大于整个文件的假设可能是错误的。编辑器可以只保存一种带有附加指针(可能非常小)的“差异文件”,并且仍然能够编辑每一行。如果文件较小或更改频繁,请切换回“标准模式”。但无法处理大文件肯定是一个缺陷 (4认同)