我正在尝试将一系列行删除到寄存器a
中。这是实现这一目标的最简单方法吗?
:5,10d a
2 回答
“最简单”的定义取决于你有什么,你想做什么
如果你有一个起始行号和结束号,例如
:2349,5344d a
是最简单的方法。
你不必考虑像这样的问题
“我的光标在哪里?”
“要删除多少行?” ...
如果您要删除少量行,尤其是它们在同一屏幕上。(您可以使用 relative-linenumber。)例如:
"a5dd
但是您必须将光标移动到要删除的第一行。这也可以通过选项 1 来完成:5:d a<CR>
(vim 会自动将其翻译成.,.+5d a<CR>
)如果您只知道删除的第一行,并通过阅读文本找到要删除的最后一行,(当然,少量行)您可以按
V
,然后j
阅读时按,当它到达删除结束边界时,按"ad
如果您问题中的“范围”是vim中的“范围”概念,第一个选项会更好。因为它可能是
234,540
,它可能是1;/foo
,/foo/,/bar/
...:h range
查看详细信息
所以回到我回答的第一句话,没有绝对最简单的方法。这一切都取决于你有什么,你想做什么。
实现此目的的另一种方法是在视线模式下突出显示线条的范围。(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
。