Remove full words containing a string in Vim

2019-04-30 03:21发布

I am trying to remove words from a line if they contain a specific string. Here is an example of the text:

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

I want to remove anything that contains +test, to result with:

host-a, host-b, host-d

Likewise, I need to apply this on a line by line basis, not on all lines in the file. It is going to be used within a macro.

How can I do this?

标签: string vim vi
1条回答
淡お忘
2楼-- · 2019-04-30 04:04

Something like this, maybe?

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

It will ask for each match if you want to replace it. Hint: set hlsearch will show you the matches.

If you also want to remove the comma, then:

%s/\(,\s\+\)\?\S\++test\>//gc
查看更多
登录 后发表回答