高级文本编辑技巧与vi编辑器定制指南
1. 复杂模式匹配任务示例
在文本编辑中,我们常常会遇到需要进行复杂模式匹配的情况。下面通过几个具体的例子来详细探讨如何解决这类问题。
1.1 删除未知文本块
假设我们有这样一些行:
the best of times; the worst of times: moving
The coolest of times; the worst of times: moving
我们关注的行总是以 “moving” 结尾,但不知道前两个单词是什么。我们希望将所有以 “moving” 结尾的行修改为:
The greatest of times; the worst of times: moving
由于这些更改只需要在特定的行上进行,所以我们需要使用上下文敏感的全局替换。具体操作步骤如下:
- 首先,使用 :g/moving$/ 来匹配所有以 “moving” 结尾的行。
- 然后,考虑到搜索模式可能是任意数量的任意字符,我们会想到使用元字符 .* 。于是第一次尝试的命令是: :g/moving$/s/.*of/The□greatest□of/ 。然而,执行这个命令后得到的结果是: The greatest of times: moving ,这显然不符合我们的预期。原因是 .* 会尽可能多地匹配文本,在这里它匹配到了第二个 “of
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



