考虑使用Tabularize
vim插件来对齐CSS规则的属性。 e.g。
body {
margin: 0;
padding: 0;
font-family: arial, verdana;
}
在vim中,光标位于规则vi{
:Tab /:\zs
内,结果为
body {
margin: 0;
padding: 0;
font-family: arial, verdana;
}
我想实现这个为整个css计算的Tabularization,而不是每个块,如图所示。
按:%Tab \:\zs
,规则名称会计入左列宽度,这是不可取的。
有些CSS规则包含多个:
,所以我的问题是如何忽略包含花括号的行?
答案 0 :(得分:3)
尝试下面列出的命令。
:%g/:.*{/s/^/:/ | exe'%Tab/^[^:]*:\zs' | %s/^:\s*//
您可以将此命令映射到快捷方式,或在保存期间自动运行 CSS文件。
:au BufWrite *.css %g/:.*{/s/^/:/ | exe'%Tab/^[^:]*:\zs' | %s/^:\s*//
答案 1 :(得分:1)
这里可以使用全局命令。我没有Tabularize,所以我的版本只是缩进所有的css块:
:%g/^.*{/+ | .,/}/->
“|”之后的最后一个命令是ex模式命令,用于将块从当前位置(每个左大括号下方的一行)缩进到右大括号上方的行。根据你所说的,我希望这可行,但我没有尝试过:
:%g/^.*{/+ | Tab /:\zs