【发布时间】:2015-02-17 05:07:36
【问题描述】:
我想创建一个全局命令来拉取多个文本部分:
:g/BEGIN/.,/END/yank A
我的想法是,我将在寄存器 A 中组装文件中出现在标记“BEGIN”和“END:”之间的(多个)部分
BEGIN
Section 1
END
BEGIN
Section 2
END
不幸的是,这在 VIM 上似乎有些混乱。有时全局似乎选择了多个部分(即它不会在它找到的第一个“END”处停止选择,而是选择更远的部分,有时是单个部分。同一全局选择的行数似乎根据不相关的编辑随机更改同一文件。
显然我做错了什么。是否有正确的语法 - 选择和拉动由标记描绘的多个部分?我没有在网上找到太多来验证这种语法 - 尽管有很多关于 ex 范围、搜索范围和带全局变量的范围的文档,但我从未见过像这样将所有三个组合在一起。
【问题讨论】:
-
对于您给定的输入,我没有发现任何问题,并且我经常使用这样的构造而没有问题(到目前为止)。您可以将其缩短为
g/BEGIN/,/END/y A。你能提供像你提到的那样被破坏的输入吗?
标签: vim