一尘不染

使用vi,如何将CSS规则整合在一起?

css

例子不好:

#main {
      padding:0;
      margin: 10px auto;
}

好例子:

#main {padding:0;margin:10px auto;}

我有大量的CSS规则占用太多行。而且我无法弄清楚:%s/要使用的命令。


阅读 323

收藏
2020-05-16

共1个答案

一尘不染

这里是单线:

:%s/{\_.\{-}}/\=substitute(submatch(0), '\n', '', 'g')/

\_.匹配任何字符,包括换行符,并且\{-}是的非贪婪版本*,因此{\_.\{-}}匹配匹配的一对花括号之间的所有字符(包括首尾)。

\=允许替换Vim表达式,我们在这里用它来去掉所有换行符的结果'\n'从匹配的文本(在submatch(0)使用)substitute()功能。

逆运算(将单行版本转换为多行版本)也可以作为一个衬套来完成:

:%s/{\_.\{-}}/\=substitute(submatch(0), '[{;]', '\0\r', 'g')/
2020-05-16