Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使vim在一行内按字母顺序排序CSS规则?_Css_Sorting_Vim - Fatal编程技术网

如何使vim在一行内按字母顺序排序CSS规则?

如何使vim在一行内按字母顺序排序CSS规则?,css,sorting,vim,Css,Sorting,Vim,资料来源: 这里的vim magic,可能是基于视觉选择的东西 结果: .foo { line-height: 150px; font-size: 24px; clear: both; } 你对vim魔法部分有什么建议 .foo { clear: both; font-size: 24px; line-height: 150px; } 将{或;上的行拆分为单独的行,:对它们进行排序(省略包含CSS定义的第一行),然后将它们重新连接在一起。非常快速的回答: :s/\([{;]\)\s*/\1\

资料来源:

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

结果:

.foo { line-height: 150px; font-size: 24px; clear: both; }
你对vim魔法部分有什么建议

.foo { clear: both; font-size: 24px; line-height: 150px; }
{
上的行拆分为单独的行,
:对它们进行排序(省略包含CSS定义的第一行),然后将它们重新连接在一起。

非常快速的回答:

:s/\([{;]\)\s*/\1\r/g | '[+1,']sort | '[,']join
另一艘班轮:

:s/[{;] /\0\r
vi{
:!sort
va{
J

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

在每一次计数上都比我的好。使用
s/[{;]/&\r
作为你的替代品。不管怎样,空格最终会被去掉。这就是我如何学会“J”可以对选择进行操作的。整洁!好东西,各位,这就是我喜欢的原因。旁注:似乎与多行CSS相关。
s/{\s*\zs.\{-}\ze\s*}/\=join(sort(split(submatch(0), '\s*;\s*')), '; ').';'