我想刪除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