2010-11-30 101 views
1

我认为vim可以真正做到这一点。我只是不知道我周围的搜索方式,并使用正则表达式替换。任何人都可以帮助我解决这个问题。使用VIM在CSS中删除评论

更新
感谢Chris帮助我解决这个问题。这是地图。

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中使用map 测试过这个测试:%s @/\ * \([^ *] \ | [\ * \ + \([^ */] \ | [\ r \ n] \)\)\)* \ * \ +/@@ g 它没有用。或者我错过了一些东西。 :) – 2010-11-30 03:55:15

1

这里是一个正则表达式(从Stephen Ostermiller)应该匹配C风格(例如,/* ... */因此CSS)的评论:

注:这可能需要适应VIM的正则表达式的特殊风味。

+0

真的简单是:`/ \\ * \\ _ \ { - } \\ *。 /`其中`/`没有模式分隔符。 – Benoit 2010-11-30 07:32:30