Удалить полные слова, содержащие строку в 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