是否有任何编辑器可以编辑多GB的文本文件,可能只是一次只将小部分加载到内存中?它似乎不像Vim可以处理它=(
答案 0 :(得分:140)
Ctrl-C将停止文件加载。如果文件足够小,你可能已经很幸运地加载了所有内容并且刚刚杀死任何后加载步骤。使用此提示时,请验证是否已加载整个文件。
Vim可以很好地处理大文件。我刚刚编辑了一个3.4GB的文件,删除了行等。要记住三件事:
:115355
将直接转到第115355行,这对于那些大文件来说要快得多。 Vim似乎每次加载缓冲线时都从头开始扫描,按住Ctrl-F扫描文件似乎在接近结束时变得非常慢。 注意 - 如果您的Vim实例因为按Ctrl-C而处于只读状态,则Vim可能无法将整个文件加载到缓冲区中。如果发生这种情况,保存只会保存缓冲区中的内容,而不是整个文件。您可以快速查看G
以跳到最后以确保文件中的所有行都在那里。
答案 1 :(得分:67)
它可能是导致它窒息的插件。 (语法高亮,折叠等。)
你可以在没有插件的情况下运行vim。
vim -u "NONE" hugefile.log
这是极简主义但它至少会给你你习惯的vi动作。
syntax off
是另一个显而易见的问题。修剪您的安装并获取您需要的内容。您将了解它的功能以及是否需要通过其他方式完成任务。
答案 2 :(得分:66)
如果你在* nix上(假设你必须只修改文件的一部分(很少)),你可以拆分文件(使用split
命令),单独编辑它们(使用{{1完成之后,将它们连接起来。
awk
或类似的东西
sed
答案 3 :(得分:18)
@Al pachio用split + vim解决方案给出的答案略有改进你可以用glob读取文件,有效地使用文件块作为缓冲区,例如
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
答案 4 :(得分:13)
您可能需要查看此VIM plugin,以便在加载大型文件时为了提高速度而禁用某些vim功能。
答案 5 :(得分:8)
我试图这样做,主要是当我需要对SQL转储进行一些小改动时,文件大约为1 GB。我在Windows上,这是一个很大的痛苦。这非常困难。
显而易见的问题是“为什么你需要?”我可以告诉你不必一次尝试这个经验,你可能真的想要找到另一种方式。
那你怎么做的?我有几种方法可以做到。有时我可以通过vim或nano来打开文件,我可以使用它们。这是一个非常艰难的痛苦,但它确实有效。
如果不起作用(如您的情况),您只有几个选项。您可以编写一个小程序来进行所需的更改(例如,搜索和替换)。您可以使用可能能够执行此操作的命令行程序(也许可以使用sed / awk / grep / etc来完成?)
如果这些不起作用,你可以随时将文件拆分成块(类似split的东西是显而易见的选择,但你可以使用head / tail来获取你想要的部分),然后编辑部分(s)需要它,并在以后重新组合。
相信我,试着找另一种方式。
答案 6 :(得分:6)
我认为十六进制编辑器处理大文件是相当普遍的。在Windows上,我使用HxD,声称处理最多8 EB(80亿千兆字节)的文件。
答案 7 :(得分:4)
我在Win7 x64上使用vim 7.3.3和LargeFile plugin by Charles Campbell来处理多GB的纯文本文件。它的效果非常好。
我希望你说得对。
答案 8 :(得分:2)
答案 9 :(得分:2)
过去,我使用此工具http://csved.sjfrancke.nl/
打开了一个3 gig文件答案 10 :(得分:2)
我使用FAR Commander的内置编辑器/查看器来处理超大型日志文件。
答案 11 :(得分:1)
我已将TextPad用于大型日志文件,但没有上限。
答案 12 :(得分:1)
就个人而言,我喜欢UltraEdit。这是他们的小spiel on large files。
答案 13 :(得分:1)
我唯一可以使用的东西是我最喜欢的Mac十六进制编辑器,0XED。然而,那是我认为大到几十兆字节的文件。我不知道它会走多远。我很确定它只会立即将部分文件加载到内存中。
答案 14 :(得分:0)
过去,当文件变得非常大时,我成功地使用了分割/编辑/加入方法。要使其工作,您必须知道原始文件中待编辑文本的位置。