使用vi,如何删除包含[searchterm]的所有行?

时间:2009-10-14 18:28:51

标签: css regex vim pattern-matching

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

这包括:

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

你会怎样使用:%s / command?

6 个答案:

答案 0 :(得分:12)

应该只是

:g/color/d

答案 1 :(得分: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\)

答案 2 :(得分:2)

标准前序列:

  :/color/d

答案 3 :(得分:2)

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

:%!grep -v color

:)

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

您可以使用uniqtac等等。

答案 4 :(得分:1)

我不确定这是否适用于vi,但它适用于vim:

:g/color/d

有关详细信息,请参阅:help global

答案 5 :(得分:0)

这对我有用:

:%s/.*color.*\n//