2

scss ファイル内の css セレクター (およびプロパティ) をアルファベット順に並べたいと考えています。vimでこれができると確信しています(外部ツールを使用する必要がある場合でも)。次の並べ替えはどうしますか?

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

これに:

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

2 に答える 2

5

あなたの単純な例では、次の 2 つのスニペットが機能しているように見えますが、より大きく、より複雑な 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. 「}」以外で始まるすべての行について、改行を削除して、このブロックを 1 行にまとめます。
  2. バッファーを行ごとに並べ替えます。
  3. すべての「;」の後 または "{" 改行を挿入します。

末尾の空白はこれを少し落としますが、それはありませんよね? :)

于 2012-09-26T14:44:04.873 に答える
0

CSScombを試してください。このツールは、カスタマイズ可能な方法で CSS を並べ替えます。オンラインで試すことができます。

CSScomb にはVim 用のプラグインがあります。

CSScomb のサイトから:

  • CSS プロパティの並べ替え(専門家の助けを借りたプロパティの順序)
  • CSS プロパティの順序を設定する(慣れ親しんだ順序を使用してください)
于 2012-09-26T14:59:29.520 に答える