我想删除CSS文件中包含单词“color”的所有行。使用vi,我如何删除所有包含[searchterm]的行?
这将包括:
body {background-color:#000;}
div {color:#fff;}
你会怎么做,使用:%s /命令?
我想删除CSS文件中包含单词“color”的所有行。使用vi,我如何删除所有包含[searchterm]的行?
这将包括:
body {background-color:#000;}
div {color:#fff;}
你会怎么做,使用:%s /命令?
这是一个明智的想法吗?你可能最终会做一些你不想要,如果你的CSS有这样
body {background-color: #000;
font-size: large;
}
p {
color: #fff; float: left;
}
部分你最好只删除包含色彩
s/\(\w\|-\)*color\w*\s*:.\{-}\(;\|$\)//
更新的属性: 正如too_much_php指出的那样,正则表达式我没有完全工作。我已经修复了它,但它需要vim。伪造仅在vi中删除问题属性的正则表达式是不可行的。因为没有字符类,所以你必须做一些事情,比如用\(a\|b\|c\|d\|....\Z\)
这并获得成功对我来说:
:%s/.*color.*\n//
标准的前序:
:/color/d
应该只是
:g/color/d
而只是给你一个完全不同的答案:
:%!grep -v color
:)
这暗示了更大的功能;您可以将* nix命令行过滤器的知识应用于编辑代码。想要按字母顺序排列的枚举列表?视觉选择,:!sort
并完成。
您可以使用uniq
,tac
,等等,等等
+1来代替\ w,这很有用! – Joshua 2009-10-14 20:17:15
我不知道这是否会为VI的工作,但它在vim的工作原理:
:g/color/d
更多信息,请参见:help global
。
但是这个正则表达式在vim中不起作用!它甚至不能在Perl中工作。 – 2009-10-15 03:32:55
感谢您指出。固定。 – EmFi 2009-10-15 04:25:31