我记录了我参加的会议的日志.
每次会议:
当我想要审查我所有的会议时,例如ACME,
这是我遇到问题的地方.
我知道如何按行搜索/删除:
:v/ACME/d
Run Code Online (Sandbox Code Playgroud)
但是我该如何逐段完成(以便将整个段落保留在ACME数据中,而不是唯一的标记行)?
注意:ACME的模式可以在这些段落中不止一次.
这有效:
let @r="" | execute("g/acme/ normal \"Rdap") | %d | put r
Run Code Online (Sandbox Code Playgroud)
它转到包含"acme"的每个段落,并删除它附加到寄存器r.然后删除所有内容并放入寄存器r.
如您所见,基本技巧是使用大写字母寄存器添加到它,而不是替换其内容.这还需要在开始时重置寄存器,以丢弃先前的寄存器内容.
这适用于多次出现"acme"的段落,因为整个段落在第一次匹配后被删除,因此,它不会再次匹配.