我保存着我参加会议的日志.
每次会议:
当我想回顾我与ACME的所有会议时,
这就是我遇到问题的地方。
我知道如何逐行搜索/删除:
:v/ACME/d
但我如何做到这一点的段落(以便保持整个段落的ACME数字,而不是唯一的标签行)?
注: ACME模式可以在这些段落中显示不止一次。
发布于 2013-08-29 11:13:25
这样做是可行的:
let @r="" | execute("g/acme/ normal \"Rdap") | %d | put r
它指向包含"acme“的每一段,并删除其,并在后面注册r,然后删除所有内容并放置寄存器r。
正如您所看到的,基本技巧是使用大写字母寄存器来添加,而不是替换其内容。这还需要在开始时重置寄存器,以丢弃以前的寄存器内容。
对于多次出现"acme“的段落来说,这是可行的,因为整个段落在第一次匹配后被删除,因此不再匹配。
发布于 2013-08-29 10:20:11
我会用awk做这件事,你可以:
%!awk -v RS="" -v ORS="\n\n" '/ACME/'
然后只保留包含ACME
的段落。
https://stackoverflow.com/questions/18507393
复制相似问题