V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Mark24
V2EX  ›  问与答

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

  •  1
     
  •   Mark24 · 2016-02-23 17:00:13 +08:00 · 14290 次点击
    这是一个创建于 2986 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    12 条回复    2021-02-28 13:50:11 +08:00
    SpicyCat
        1
    SpicyCat  
       2016-02-23 17:11:54 +08:00   ❤️ 2
    如果你只是想处理大文件的话,不必专门学 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
        2
    morefreeze  
       2016-02-23 18:08:29 +08:00
    这个和你 vim 开的插件也有关,裸的话应该也好测试。

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

    当然,是用的服务器……
    knightdf
        4
    knightdf  
       2016-02-23 18:24:27 +08:00
    vim 服务器上 1 , 2 个 G 的日志随便开.....
    lobee90
        5
    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
        6
    tracyone  
       2016-02-23 18:40:05 +08:00
    其实这种大体积文件一般是日志文件,要查找难道不是 grep,sed,awk,ag,awk 这些命令?
    knightdf
        7
    knightdf  
       2016-02-23 19:13:45 +08:00
    @lobee90 不说了, less 赢了
    chemzqm
        8
    chemzqm  
       2016-02-23 19:16:32 +08:00
    这种情况,你需要的是 sed
    对, sed 就是编辑器,文件几个 G 都没问题!
    6david9
        9
    6david9  
       2016-02-23 22:13:38 +08:00
    以前用 vim 看日志,打开过 1g+ 的文件,但是内存占用要超过文件大小。要是必须用编辑器打开大文件,可以试试 joe ,大文件不是一次加载进内存的。 emacs 操作风格
    hronro
        10
    hronro  
       2016-02-24 00:21:49 +08:00
    求一个 90M 的 JSON 文件做测试
    wittyfox
        11
    wittyfox  
       2016-02-24 10:57:46 +08:00 via Android
    我这不 vim 咋 1 万行就不行了。
    qiuhang
        12
    qiuhang  
       2021-02-28 13:50:11 +08:00
    @hronro 你自己写个简单的循环,随机生成不就好了。别说 90M,900M 、9000M 都是小意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1098 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.