我正在尝试将一系列行删除到寄存器a
中。这是实现这一目标的最简单方法吗?
:5,10d a
答案 0 :(得分:10)
“最简单”的定义取决于您拥有什么,以及您想做什么
如果您有一个起始行号和结束号,例如
: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
查看详细信息
回到我的回答中的第一句话,没有绝对最简单的方法。这一切都取决于你拥有什么,以及你想做什么。
答案 1 :(得分:3)
实现这一目标的另一种方法是突出视线模式中的线条范围。 (移位-V)
然后在视线模式下输入"ad
。这会将删除的行放入a
寄存器。
"
后跟一个寄存器,将下一个删除,抽取或放入该寄存器。
以下是" (quote)
的文档 *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条删除的行放入寄存器a
。