2015-12-28 92 views
0

输入如何在vim中使用非贪婪?

\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 
+0

的[?我怎样才能使我的vim的非匹配贪婪(可能的复制http://stackoverflow.com/questions/1305853/how-可以-I-让 - 我 - 比赛非贪婪式-VIM) –

回答

2

非贪婪在vimregex是.\{-}举个细节看:h \{-

所以你:s CMD可写成:

%s/\(\\sn{[^}]*}\).\{-}\(\\sn{[^}]*}\).\{-}\(\\yr{[^}]*}\).*/\1\2\3/g