2012-01-18 5 views
4

私は、フロントページ、生成されたHTMLファイルをきれいにしようとしている、とのように私は削除する必要があるタグ属性のトンは、ありますVim可変長ワイルドカードの検索と置換?

style="font-size: 10.0pt; font-family: Trebuchet MS; color: blue" 
style="color: blue; text-decoration: underline; text-underline: single" 
style="color: blue; text-decoration: underline; text-underline: single" 
style="font-family: Trebuchet MS" 
style="font-size:10.0pt;" 
style="color: navy" 

私はシンプルでワイルドカードのセット数を削除することができます。コマンド:

:%s/ style="........"//g 

しかし、それを作る方法はありますか?その代替コマンドでは可変長なので、あるコマンドがドキュメント全体のすべてのスタイル属性を削除するでしょうか?

PS - 私はfrontpageクリーナーを検索していくつか見つけましたが、どれくらい信頼できるかはっきりしていないので、代わりに自分でスクリプトを作成しました。ここに提案にオープン。

答えて

11

これは、すべてのスタイルは、あなたのHTMLの属性排除する必要があります。

:%s/ style=".*"//g 

編集:サムBrinckは良い点が表示されます。私のコードはあなたの例だけに基づいていました。 style="..."属性の後に他の属性があったとしたら、このコードはあまりにもぎこちなくなります。安全な代替とすることができる:

:%s/ style="[^"]*"//g 

を意味している - 次の二重引用符に遭遇するまでダブルクォート[^"]されていないことをstyle="後のすべての文字を削除します。サムに感謝!

+0

優秀、ありがとうございます。私はそれを試みたが、明らかにそうではないと誓ったことがあります。 Muchos gracias! – Kurtosis

+5

'。*'は欲張りですが、行に複数の '"があると、最後の '' 'まですべてを取得します。 –

+0

ハハ、ありがとう、それは確かにいくつかの痛みを引き起こす可能性があります。 @Web User、編集のためのthx。 – Kurtosis