2013-01-20 137 views
5

我試圖從一行中刪除單詞,如果它們包含特定的字符串。這裏是文字的例子:在Vim中刪除包含字符串的整個單詞

host-a, host-b, host-c+test, host-d, host-e+test 

我想刪除任何包含+test,導致有:

host-a, host-b, host-d 

同樣,我需要通過線基礎上線應用此,不在文件的所有行上。它將在宏中使用。

我該怎麼做?

+0

你也想刪除逗號? – fge

+0

是的。正如我的例子所示。 – Jericon

回答

4

這樣的事情,也許?

:%s/\<[-a-z]\++test\>//gc 

如果要替換它,它會詢問每個匹配項。提示:set hlsearch會顯示你的比賽。

如果您也想刪除逗號,然後:

%s/\(,\s\+\)\?\S\++test\>//gc 
+0

''' counds作爲一個字的邊界,所以你要麼必須關閉或使用另一種解決方案 –

+0

啊,是的,這是真的。固定。 – fge

+0

第一個工作,但第二個不是。我確實需要刪除逗號(如果該項目不是該行中的第一個)。 – Jericon