有没有办法使用 vim 宏或其他工具重新格式化 css?

有没有办法使用 vim 宏或其他工具重新格式化 css?

我有一个包含如下行的 CSS 文件:

.exhibit-page-nav {list-style:none; float: left; padding: 1em 0; width: 100%; border-top: 1px solid #c7b5a2;}

但我希望它看起来像这样:

.exhibit-page-nav {
    list-style:none; 
    float: left; 
    padding: 1em 0; 
    width: 100%; 
    border-top: 1px solid #c7b5a2;
}

有没有办法编写 vim 宏来做到这一点?

答案1

@user137369 的评论很正确,但是你要求的是 vim 宏……

如果您只想格式化这一行,则不需要宏:简单的替换就足够了。但将来您可能需要再次进行同样的练习;在这种情况下,您可能希望将其录制为宏,甚至将其保存为命令或映射。

那么...假设您想将其保留为宏:

qx              " start recording in register x
:s/[;\{]/\0\r/g " the substitution that does the formatting
=i{             " indent the whole thing nicely
q               " stop recording

之后,您可以将光标放在线上并点击来应用宏:

@x

替换的意思是“将任何;{[;\{])替换为其自身(\0),后面跟着一个回车符(\r)”。

现在假设您有十几行这样的代码,将宏应用到所有这些代码块就像选择它们并输入一样简单:

:'<,'>norm @x

:help :normal

如果文件中有很多这样的行,并且能够识别出一个共同的模式,那么;}另一个选项(我非常喜欢)是使用以下命令:global

:g/;\}/norm @x

:help :global

相关内容