2012-09-26 44 views
2

我想在我的scss文件中將css選擇器(和屬性)字母化。我確定vim可以做到這一點(即使我需要使用一些外部工具)。你會如何分類以下內容?如何使用vim對css選擇器進行排序?

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

要這樣:

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

這是不是一個好主意,在CSS文件中排序選擇器,因爲它會打破CSS的級聯規則,因此網站將被打破在標記 –

+0

@VladimirStarkov不一定。雖然我知道這種行爲是可用的,但永遠不應該使用imo。我討厭在訂單重要的地方使用1000多行代碼。你怎麼可能將所有這些背景放在你的腦海中?不,如果訂單被用來定義樣式,而不是代碼味道。 –

+0

你可以向你展示css文件嗎? –

回答

5

爲您簡單的例子,下面的兩個片段似乎工作,但我擔心他們可能會掉下來有更大,更復雜的CSS。


要訂購我用宏**屬性:

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

**注意^ M的位置與CTRL-V按Ctrl-M輸入。

說明:

  1. 定義一個宏:
    • 搜索一個 「{」
    • 選擇之間的文本 「{」 和 「}」
    • 排序選擇按行
  2. 在緩衝區中的所有行上運行宏。

要訂購我使用的選擇替代品和排序:

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

說明:

  1. 對於每一個比其他東西 「}」 開頭行刪除換行符將此塊摺疊爲一行。
  2. 按行排序緩衝區。
  3. 每當「;」或「{」插入換行符。

尾隨空白把這個問題拋出一點,但你沒有這個,對吧? :)

0

嘗試CSScomb。這個工具以cusomizable的方式對你的css進行排序。你可以試試online

對於Vim,CSScomb有plugin

從CSScomb的網站:

  • 排序CSS屬性
  • (性能在專業人士的幫助下順序)設置CSS屬性的順序(使用你是哪個習慣的順序到)
+0

對,我在我的搜索中看到了這個。據我可以告訴它不排序選擇器(問題中要求)。我錯了嗎? –

+0

@thedeeno排序選擇器將打破你的網站 - 我以前告訴過它在評論你問題 –

相關問題