Vim 最大可以打开多大的文件(流畅操作)?

2016-02-23 17:00:13 +08:00
 Mark24

今天拿到一份 90M 的数据做试验, JSON 纯文本,用 Sublime 打开,需要 10s 吧(我是 SSD )然后,进行一个全选复制就奔溃掉了
find 操作,很迟钝,但是可以用
切换文件类似为 JSON ,界面奔溃,无法完成
插件,优化格式,界面奔溃

同样,想把数据导入客户端,粘贴的形式,数据库客户端崩溃掉了

最后命令行, 5 秒导入 30w 左右的数据

艾玛,最后还是命令行是王道

那么问题来了, Vim 这种,能承受的文件大小是多大?

我觉得我要去学 Vim 了。一旦数据量大,好像还是经久不衰的化石编辑器, Diao 一点

14528 次点击
所在节点    问与答
12 条回复
SpicyCat
2016-02-23 17:11:54 +08:00
如果你只是想处理大文件的话,不必专门学 vim ,当然了解下 vim 的基本操作也不是坏事。
参看这个答案: http://superuser.com/questions/346510/can-i-use-vim-to-open-a-huge-file-effectively
使用 less 更有效率。
如果想用 vim 打开大文件,可以先看看这个配置,能使 vim 打开大文件更有效率
http://vim.wikia.com/wiki/Faster_loading_of_large_files

如果大文件有非常非常长的行,比如 100M 的文件,只有一行,那么用 vim 打开可能有问题。
参看 http://unix.stackexchange.com/questions/139254/why-cant-vim-open-a-100-mb-text-file-when-i-have-16-gb-ram
morefreeze
2016-02-23 18:08:29 +08:00
这个和你 vim 开的插件也有关,裸的话应该也好测试。

但我想说的和 1 楼一样,你如果为了修改大文件,可以尝试用 awk,sed 或者切分小文件来合并,来解决。
xpsair
2016-02-23 18:23:12 +08:00
VIM 打开过单个大小将近 1GB 的 .txt ,表示需要等几秒,然后就跟开几 MB 大小的 .txt 没什么差异了。

当然,是用的服务器……
knightdf
2016-02-23 18:24:27 +08:00
vim 服务器上 1 , 2 个 G 的日志随便开.....
lobee90
2016-02-23 18:30:16 +08:00
@knightdf Emacs 表示不服!!!
默认情况,Emacs 打开打超过 10MB 文件会收到警告信息:"File foo.bar is large (XX.XM), really open?"
以通过设置`large-file-warning-threshold`的值,来改变产生警告的阀值.推荐将该值设为 100MB 左右
如果把该变量设为 nil,这表示不管打开的文件有多大,永远不会产生这种警告.
tracyone
2016-02-23 18:40:05 +08:00
其实这种大体积文件一般是日志文件,要查找难道不是 grep,sed,awk,ag,awk 这些命令?
knightdf
2016-02-23 19:13:45 +08:00
@lobee90 不说了, less 赢了
chemzqm
2016-02-23 19:16:32 +08:00
这种情况,你需要的是 sed
对, sed 就是编辑器,文件几个 G 都没问题!
6david9
2016-02-23 22:13:38 +08:00
以前用 vim 看日志,打开过 1g+ 的文件,但是内存占用要超过文件大小。要是必须用编辑器打开大文件,可以试试 joe ,大文件不是一次加载进内存的。 emacs 操作风格
hronro
2016-02-24 00:21:49 +08:00
求一个 90M 的 JSON 文件做测试
wittyfox
2016-02-24 10:57:46 +08:00
我这不 vim 咋 1 万行就不行了。
qiuhang
2021-02-28 13:50:11 +08:00
@hronro 你自己写个简单的循环,随机生成不就好了。别说 90M,900M 、9000M 都是小意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258508

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX