Удалить полные слова, содержащие строку в Vim

Я пытаюсь удалить слова из строки, если они содержат определенную строку. Вот пример текста:

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

Я хочу удалить все, что содержит +test, чтобы привести к:

host-a, host-b, host-d

Точно так же мне нужно применять это построчно, а не ко всем строкам в файле. Это будет использоваться в макросе.

Как я могу это сделать?

1 ответ

Решение

Может быть как то так?

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

Он спросит для каждого матча, если вы хотите заменить его. Подсказка: set hlsearch покажет вам спички.

Если вы также хотите удалить запятую, то:

%s/\(,\s\+\)\?\S\++test\>//gc
Другие вопросы по тегам