【问题标题】:How I can delete in VIM all text from current line to end of file?如何在 VIM 中删除从当前行到文件末尾的所有文本?
【发布时间】:2011-12-28 18:53:34
【问题描述】:

我有非常大的文件(超过 10Gb)。我只需要文件顶部的一些行。是否可以(在 vim 中)删除文件的其余部分(从当前行到文件末尾)?

【问题讨论】:

  • 我知道你想使用 Vim,但我会执行如下 shell 命令:head -n <number_of_lines> <filename> > <truncated_filename> 其中-n 是你想要从顶部开始的行数的参数

标签: file vim text


【解决方案1】:

转到要删除的第一行,然后按 dG

【讨论】:

  • 在输入 dG 之前不要按“:”
【解决方案2】:

dG会从当前行删除到文件末尾

dCtrl+End将从光标处删除到文件末尾

但是如果这个文件和你说的一样大,你最好用head阅读前几行而不是编辑和保存文件。

head hugefile > firstlines

(如果您使用的是 Windows,则可以使用 head 的 Win32 端口)

【讨论】:

  • 您可以指定head 提供的行数,例如:head -n20 hugefile 用于前 20 行。 n 默认为 10。
  • 需要head 的动力吗?在大文件 (1G+) 上使用 dG 需要很长时间(例如 5 分钟)。
  • 对于那些寻找相反的,dgg 将从当前行删除到文件的开头。
  • d Ctrl+End 对我不起作用。 d Shift+End 确实从光标处删除到行尾。
【解决方案3】:

只是添加另一种方式,在普通模式下,输入ctrl+v然后G,选择其余的,然后D,我认为它没有效果,你应该像@Ed Guness一样,head -n 20 > linux 中的文件名。

【讨论】:

    【解决方案4】:

    :.,$d

    这将删除从当前行到文件末尾的所有内容。这在您处理测试向量生成或剥离时非常有用。

    【讨论】:

    • 我更喜欢对起始行有更多的控制,所以我使用::<line number>,$d 例如::3,$d 将从第 3 行删除到文件末尾
    【解决方案5】:

    我使用以下步骤来做同样的事情-

    1. Esc 确保您处于正常模式。
    2. V进入可视模式。
    3. GShift + g 选择从光标到文件末尾的文本。
    4. 现在按 x 删除所选文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多