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