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

mag*_*ger 0 css regex vim pattern-matching

我想删除CSS文件中包含单词"color"的所有行.

这将包括:

body {background-color:#000;}
div {color:#fff;}
Run Code Online (Sandbox Code Playgroud)

你会怎么用:%s /命令?

EmF*_*mFi 5

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

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

p {
  color: #fff; float: left;
  } 
Run Code Online (Sandbox Code Playgroud)

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

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

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