在一行中,Vim 如何只匹配最后一次出现的搜索模式?有点像非贪婪,但从一开始。
例如,在以下行中,我想匹配Twinkle little star
(以粗体突出显示):
Twinkle blah Twinkle blah blah一闪一闪的小星星。
我尝试了如下的负前瞻,但它与整行匹配:
Twinkle.*\(Twinkle\)\@!$
转义括号并在锚点前添加通配符匹配:
Twinkle\(.*Twinkle\)\@!.*$
^ ^ ^^
/\v.*\zsTwinkle.*
使用 ":set incsearch",将一些文本加载到缓冲区中,然后开始输入模式以查看它是如何应用的。
例如,一个缓冲区:
Twinkle brightly little star
Twinkle brightly, Twinkle brightly little star
和替换:
:%s/\v.*\zsTwinkle /&extra /
给出:
Twinkle extra brightly little star
Twinkle brightly, Twinkle extra brightly little star