0

我想删除 CSS 文件中包含“颜色”一词的所有行。

这将包括:

body {background-color:#000;}
div {color:#fff;}

你将如何使用 :%s/ 命令来做到这一点?

4

5 回答 5

12

应该只是

:g/color/d
于 2009-10-14T18:33:14.833 回答
5

这是一个明智的想法吗?如果你的 CSS 有这样的部分,你最终可能会做一些你不想要的事情

body {background-color: #000;
  font-size: large;
}

p {
  color: #fff; float: left;
  } 

你最好只删除包含颜色的属性

s/\(\w\|-\)*color\w*\s*:.\{-}\(;\|$\)//

更新: 正如 too_much_php 指出的那样,我的正则表达式并没有完全起作用。我已经修复了它,但它需要vim。伪造一个只删除 vi 中问题属性的正则表达式是不可行的。因为没有字符类,你必须做一些事情,比如将 \w 替换为\(a\|b\|c\|d\|....\Z\)

于 2009-10-14T18:37:40.903 回答
2

标准防爆序列:

  :/color/d
于 2009-10-14T18:32:51.397 回答
2

只是给你一个完全不同的答案:

:%!grep -v color

:)

这暗示了更大的功能。您可以应用您对 *nix 命令行过滤器的知识来编辑您的代码。想要按字母顺序排列的枚举列表吗?视觉选择,:!sort就完成了。

您可以使用uniq,tac等。

于 2009-10-14T18:34:17.283 回答
0

这对我有用:

:%s/.*color.*\n//
于 2009-10-14T18:32:28.813 回答