gpt4 book ai didi

css - 我如何使用 vim 对 css 选择器进行排序?

转载 作者:行者123 更新时间:2023-12-02 22:28:40 24 4
gpt4 key购买 nike

我想在我的 scss 文件中按字母顺序排列 css 选择器(和属性)。我确信 vim 可以做到这一点(即使我需要使用一些外部工具)。你会如何排序以下内容?

h2 { 
color:red;
background-color:green;
}
h1 {
font-size:12px;
}

对此:

h1 {
font-size:12px;
}
h2 {
background-color:green;
color:red;
}

最佳答案

对于您的简单示例,以下两个片段似乎有效,但我担心它们可能会因更大、更复杂的 css 而失效。


为了订购属性,我使用了一个宏**:

:let @q = "/{^Mvi{:sort^M"|%norm! @q

** 注意这里的^M是用Ctrl-vCtrl-m输入的。

解释:

  1. 定义一个宏来:
    • 搜索“{”
    • 选择“{”和“}”之间的文本
    • 按行对选择进行排序
  2. 在缓冲区中的所有行上运行宏。

为了对选择器进行排序,我使用了替换和排序:

:%s/\v([^}])\n/\1/g|%sort|%s/\v[;{]/&\r/g

解释:

  1. 对于以“}”以外的内容开头的每一行,删除换行符以将此 block 折叠为一行。
  2. 按行对缓冲区进行排序。
  3. 在每个“;”之后或“{”插入换行符。

尾随空格会稍微影响这一点,但您没有这些,对吧? :)

关于css - 我如何使用 vim 对 css 选择器进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com