Vim:将CSS从一行重新格式化为多行

时间:2014-04-04 14:20:37

标签: css vim

我有一些这种格式的css代码:

a { color: #333; background-color: #fff; } 
a:visited { color: #aaa; background-color: #555; } 

我希望以这种格式获得它:

a { 
    color: #333; 
    background-color: #fff; 
} 
a:visited {
    color: #aaa; 
    background-color: #555; 
} 

有一种简单的方法吗?我知道我可以写一个宏来做到这一点,但我希望有一个更好/更容易的解决方案。理想情况下,我希望能够选择行并执行gq之类的操作。

4 个答案:

答案 0 :(得分:13)

如果文件类型已设置为CSS,您可以尝试:

:%s/[{;}]/&\r/g|norm! =gg

至少它适用于你的例子:

enter image description here

答案 1 :(得分:3)

您可以使用cssbeautify

:%! css-beautify --file -

答案 2 :(得分:0)

不是确定的答案,但可能会帮助您找到正确的方向。我使用了很多vim文件来检查我的代码(不同的语言),我发现使用插件我可以复制我的代码并在运行时很好地格式化(例如在进行python等时的PEP-8)。 希望这对你有用:http://www.vim.org/scripts/script.php?script_id=2981

TotalOpinion - (抱歉!) - 恭喜选择所有编辑之王!

答案 3 :(得分:0)

我已经在解决这个问题上一段时间了。但就我而言,由于肯特的回答,我想逐行重新格式化单行的css文件,我终于明白了:

  1. 使用可视模式选择要重新格式化的一行或几行
  2. 键入'<,'>s/[{;}]/&\r/g|norm! v'<=

完成重新格式化的css块后,在可视模式下仅选择一个css块,然后按J(大写j),然后它将变成一条漂亮的一行。

PS。对不起我的英语不好