css - Sublime Text 2 : How to reformat CSS to specific (non-standard) styles?

标签 css regex sublimetext2 sublimetext sublime-text-plugin

有多种 CSS 格式化程序可以做到这一点:

.classname {
  style: value;
  style: value;
}
.classname {
  style: value;
}

然后把它变成这样:

.classname { style: value; style: value; }
.classname { style: value; }

问题是我的个人偏好与很多其他人的偏好不一致。这很好,因为我不是一个常见的用例,所以我不希望有任何东西。我想拿第一个例子,把它变成这样:

.classname {
  style: value;
  style: value;
}
.classname { style: value; }

所有具有多种样式的类都在自己的行上,但每个只有一种样式的类是紧凑的。

我可以接受一些我可以在 Sublime Text 2 中搜索的正则表达式,它可以让我找到像这样的单一样式类的每个实例,然后只需在找到我想要的内容后进行编辑。这对我来说非常好,并且在我继承大型样式表时会有所帮助。正如您可能想象的那样,对于这些大床单,我通常不会手工制作,只能忍受它。我更希望有一个简单的解决方案,例如在没有插件的情况下搜索正则表达式或其他内容。

最佳答案

可以使用 RegEx 替换来完成基本转换。我会这样做:

第 1 步: \nNOTHING 删除所有换行符

第 2 步: [\s\t]{1,} 更改 multispace/tab 顶部一个空格(可能很高兴拥有)

第 3 步: \}}NEWLINE Break after

第 4 步: \s+(\})|(\{)\s+\1\2 删除单个大括号前后的空格(可能很好)

没有为搜索和替换创建自定义键绑定(bind)的内置功能,但有一个插件可以做到这一点:

https://github.com/facelessuser/RegReplace

Reg Replace is a plugin for Sublime Text 2 that allows the creating of commands consisting of sequences of find and replace instructions.

键绑定(bind)和 RegReplace 配置可能看起来像这样......

正则替换

{
    "replacements": {
        "strip_newlines": {
            "find": "\\n", "greedy": true, "case": false,
            "replace": ""
        },
        "reduce_multispace": {
            "find": "[\\s\\t]{1,}", "greedy": true, "case": false,
            "replace": ""
        },
        "break_after_closecurlybrace": {
            "find": "\\}", "greedy": true, "case": false,
            "replace": "\\}\n"
        },
        "strip_space_around_curlybraces": {
            "find": "\s+(\})|(\{)\s+", "greedy": true, "case": false,
            "replace": "\\1\\2"
        }
    }
}

键绑定(bind)

{
    "caption": "Make my odd formatting",
    "command": "reg_replace",
    "args": {
        "replacements": ["strip_newlines", "reduce_multispace", "break_after_closecurlybrace", "strip_space_around_curlybraces"]
    }
}

两者都完全未经测试

关于css - Sublime Text 2 : How to reformat CSS to specific (non-standard) styles?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841558/

相关文章:

regex - 使用 Select-String 匹配多个单行模式并写入输出

regex - Powershell foreach 路径找不到文件

css - 删除在命名的 CSS 颜色上突出显示的激烈 Sublime Text 语法

css - Internet Explorer 11 无法识别 attr.xlink :href

html - 如何给::marker 留出余量?

css - Bootstrap 列高度导致下一行在错误的位置开始

css - 覆盖 app-header-layout 的影子 DOM 样式

regex - 正则表达式错误地评估为真

sublimetext2 - 在 SublimeLinter 中忽略 XML 命名空间 (TAL)

macos - 更改 sublime text 2 中侧边栏的键盘快捷键