2010-11-30 5 views
1

私はvimが本当にこれを行うことができると思います。私はちょうど私の方法arround検索とregexを使用して置き換えてわからない。誰もがこの周りの私を助けることができます。VIMを使ったCSSのストリップコメント

更新
この件に関するお手伝いを下記にお願いいたします。ここに地図があります。

map <leader>rc :%[email protected]\v/\*([^*]\|[\r\n]\|(\*+([^*/]\|[\r\n])))*\*+/@@g<cr> 

答えて

3

:%[email protected]/\*\([^*]\|[\r\n]\|\(\*\+\([^*/]\|[\r\n]\)\)\)*\*\+/@@gはそれがエスケープ回避するために、区切り文字として@を使用してではなく、/者注(すべてのCSSのコメントを取り除くでしょう\

あなたはまた\v、「非常に魔法」フラグを(:help \vを読む)を使用することができ、かつ()|+文字の魔法を行う必要はありません:。:%[email protected]\v/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/@@g

(この答えはちょうどそれのためにVimの構文に入れてjballの答えを拡張している。)

+0

ありがとうございます。D 地図を使ってvimでこれをテストしました test:%s @/\ * \([^ *] \ | [\ r \ n] \ | \(\ * \ + \ ] \ | [\ r \ n] \)\)\)* \ * \ +/@@ g これは機能しませんでした。または私は何かが欠けている。 :) –

+1

@ragingmonあなたは2つを混ぜました。あなたは、すべてのものをエスケープする最初のもの、または「非常に魔法のもの」を使うものを使用する必要があります。そして、 'map'を使うときは、' \ v'変種を使わないとエスケープしなければなりません。 '|'はコマンドを区切るために使われます( ':help:bar'を参照してください) 。 –

+0

Chrisに感謝します。このようなことを私に教えてくれてありがとう。ここには作業中のものがあります>> map rc:%s @ \ v/\ *([^ *] \ | [\ r \ n] \ |(\ *([^ * /] \ | [ n]))))* \ * +/@@ g

1

は、ここでCスタイル(たとえば、/* ... */ので、CSS)のコメントと一致する必要があります(Stephen Ostermillerから)正規表現です:

注:これはおそらく、正規表現のVIMの特定の風味への適応が必要になります。

+0

本当に簡単です: '/ \\ * \\ _ \。 { - } \\ */''/'はパターンデリミタではありません。 – Benoit

関連する問題