例子不好:
#main { padding:0; margin: 10px auto; }
好例子:
#main {padding:0;margin:10px auto;}
我有大量的CSS规则占用太多行。而且我无法弄清楚:%s/要使用的命令。
:%s/
这里是单线:
:%s/{\_.\{-}}/\=substitute(submatch(0), '\n', '', 'g')/
\_.匹配任何字符,包括换行符,并且\{-}是的非贪婪版本*,因此{\_.\{-}}匹配匹配的一对花括号之间的所有字符(包括首尾)。
\_.
\{-}
*
{\_.\{-}}
在\=允许替换Vim表达式,我们在这里用它来去掉所有换行符的结果'\n'从匹配的文本(在submatch(0)使用)substitute()功能。
\=
'\n'
submatch(0)
substitute()
逆运算(将单行版本转换为多行版本)也可以作为一个衬套来完成:
:%s/{\_.\{-}}/\=substitute(submatch(0), '[{;]', '\0\r', 'g')/