前提
- Vimを使ってる
具体例
unsorted.css
html{margin:0;padding:0;font-size:100%;vertical-align:baseline;}body{line-height:1.5;color:#000;background:#fff;}
を
sorted.css
html{font-size:100%;margin:0;padding:0;vertical-align:baseline;}body{background:#fff;color:#000;line-height:1.5;}
にします
Vimなら一発でできちゃいます!!
やり方
下のコマンドを実行するだけ
:g/{/+1,/}/-1 sort
具体例のブロックは2個ですが、何個でも一発でイケます!
なんで?
ここからはコマンドの説明
使ったのはglobal
コマンドというやつで、下の形式で使います
:g/正規表現/コマンド
今回の場合
- 正規表現
{
- コマンド
+1,/}/-1 sort
正規表現
正規表現の{
は{
の位置を表してます
コマンド
sort
というコマンドを使ってますsort
は指定した範囲の文字列や数字を並べ替えるコマンドで、下の形式で使います
:範囲 sort
今回の場合、範囲は+1,/}/-1
,
の前が選択する範囲の開始位置、後ろが終了位置
- 開始位置
+1
- 終了位置
/}/-1
開始位置の+1
は正規表現が表す位置{
から1つ進んだところ
終了位置の/}/-1
は/}/
の表す位置}
から1つ戻ったところ
つまり+1,/}/-1
は{
と}
の中を表してるので、sort
でプロパティをアルファベット順に並べ替えられます!