1

我正在尝试将一系列行删除到寄存器a中。这是实现这一目标的最简单方法吗?
:5,10d a

4

2 回答 2

12

“最简单”的定义取决于你有什么,你想做什么

  1. 如果你有一个起始行号和结束号,例如

    :2349,5344d a
    

    是最简单的方法。

    你不必考虑像这样的问题

    “我的光标在哪里?”

    “要删除多少行?” ...

  2. 如果您要删除少量行,尤其是它们在同一屏幕上。(您可以使用 relative-linenumber。)例如:"a5dd 但是您必须将光标移动到要删除的第一行。这也可以通过选项 1 来完成:5:d a<CR>(vim 会自动将其翻译成.,.+5d a<CR>

  3. 如果您只知道删除的第一行,并通过阅读文本找到要删除的最后一行,(当然,少量行)您可以按V,然后j阅读时按,当它到达删除结束边界时,按"ad

  4. 如果您问题中的“范围”是vim中的“范围”概念,第一个选项会更好。因为它可能是234,540,它可能是1;/foo/foo/,/bar/...:h range查看详细信息

所以回到我回答的第一句话,没有绝对最简单的方法。这一切都取决于你有什么,你想做什么。

于 2013-05-06T21:14:44.617 回答
3

实现此目的的另一种方法是在视线模式下突出显示线条的范围。(Shift-V)

然后"ad在视线模式下键入。这会将删除的行放入a寄存器中。

"后面跟着一个寄存器,将下一个删除、拉出或放入该寄存器。

以下是“(引用)的文档

                                                            *quote*
"{a-zA-Z0-9.%#:-"}  Use register {a-zA-Z0-9.%#:-"} for next delete, yank
                    or put (use uppercase character to append with
                    delete and yank) ({.%#:} only work with put).

删除多行并将其放入寄存器的另一个示例。要删除 6 行并将它们放入寄存器中,您可以进入该行并键入"a6dd。这会将 6 条已删除的行放入 register a

于 2013-05-05T22:48:26.463 回答