4

来源:

.foo { line-height: 150px; font-size: 24px; clear: both; }

vim 魔法在这里,可能是基于视觉选择的东西

结果:

.foo { clear: both; font-size: 24px; line-height: 150px; }

你对 vim 魔法部分有什么建议?

4

3 回答 3

6
:s/\([{;]\)\s*/\1\r/g | '[+1,']sort | '[,']join

将行拆分{;将每个规则分成单独的行,:sort它们(省略包含 CSS 定义的第一行),然后将它们重新连接在一起。

于 2012-05-21T15:29:21.130 回答
2

非常快速的回答:

:s/[{;] /\0\r
vi{
:!sort
va{
J
于 2012-05-21T15:30:29.237 回答
1

另一个单行:

s/{\s*\zs.\{-}\ze\s*}/\=join(sort(split(submatch(0), '\s*;\s*')), '; ').';'

这次我们使用sub-replace-\=, 和列表操作函数(sort(), split(), 和join()

于 2012-05-21T17:03:58.207 回答