0
\sn{1}\gn{2}\gn{3}\sn{4}\sn{5}\gn{6}\gn{7}\sn{8}\yr{2012}
需要的输出
\sn{1}\sn{4}\yr{2012}
我用这个代码。但失败了。
%s/\\sn{\([^}]*\)}.*\\sn{\([^}]*\)}.*\\yr/\sn{\1}\sn{\2}\yr{\3}/gec
\sn{1}\gn{2}\gn{3}\sn{4}\sn{5}\gn{6}\gn{7}\sn{8}\yr{2012}
需要的输出
\sn{1}\sn{4}\yr{2012}
我用这个代码。但失败了。
%s/\\sn{\([^}]*\)}.*\\sn{\([^}]*\)}.*\\yr/\sn{\1}\sn{\2}\yr{\3}/gec
非贪婪在vimregex是.\{-}
举个细节看:h \{-
。
所以你:s
CMD可写成:
%s/\(\\sn{[^}]*}\).\{-}\(\\sn{[^}]*}\).\{-}\(\\yr{[^}]*}\).*/\1\2\3/g
的[?我怎样才能使我的vim的非匹配贪婪(可能的复制http://stackoverflow.com/questions/1305853/how-可以-I-让 - 我 - 比赛非贪婪式-VIM) –