Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove full words containing a string in Vim

Tags:

string

vim

vi

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?

like image 966
Jericon Avatar asked Oct 05 '22 07:10

Jericon


1 Answers

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
like image 169
fge Avatar answered Oct 11 '22 00:10

fge