Найти и заменить строку, если эта строка содержит другую строку в VIM - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь выяснить, как заменить слово или строку в каждой строке в файле, если она содержит другую строку в vim.Например, учитывая файл, содержащий:

Hello World Test
This is a Hello Test
World This Test Hello a

Я хочу заменить Test на Apple, где эта строка содержит слова Hello и World.Я бы использовал оператор поиска, чтобы найти строки, содержащие Hello и World (в любом порядке).Но как мне найти замену Test в этих строках.

Пример оператора поиска:

/\(Hello.*World\)\|\(World.*Hello\)

Пример обновленного файла

Hello World Apple
This is a Hello Test
World This Apple Hello a

1 Ответ

0 голосов
/ 04 декабря 2018

Для этого можно использовать команду :global:

:g/Hello.*World\|World.*Hello/s/Test/Apple/g

Здесь мы запускаем команду подстановки s/Test/Apple/g на всех строках, где Hello.*World\|World.*Hello соответствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...