Подтвердить что ты не робот

Найти и заменить в пределах выбора в `vi`

Как я могу найти и заменить в пределах выбора в vi?

4b9b3361

Ответ 1

Выберите текст в визуальном режиме (я предполагаю, что вы делаете), затем нажмите :, чтобы начать вводить команду, вы увидите что-то вроде этого в командной строке:

:'<,'>

Это означает, что команда будет применяться к выбору. Затем введите s/search/replace/ и нажмите enter. (Добавьте g после третьего косая черта, если вы хотите заменить все совпадения, и c, если вы хотите получить подтверждение для каждой замены)

Ответ 2

Большинство других решений, предлагаемых здесь, работают над линией ENTIRE, в которой происходит выбор, что может быть не таким, каким вы хотите.

Для поиска и замены ТОЛЬКО в выборе сначала визуально выберите текст, а затем используйте команду:

:%s/\%VSEARCH/REPLACE/g

Это приведет к поиску и замене только в визуально выбранном разделе, заменив SEARCH с помощью REPLACE. Если вы выбрали более одной строки, это будет работать и на нескольких строках.

Ответ 3

Если вы использовали Визуальный режим для выбора, то:

:'<,'>s/regex/replacement/options

VIM автоматически поместит диапазон ('<,'>), если вы перейдете в режим командной строки (нажав ':') из визуального режима.

Ответ 5

Если вы хотите выполнить глобальный поиск и заменить (с необязательными регулярными выражениями) для всех экземпляров в файле, я бы сделал следующее:

:%s/foo/bar/g

Опустите g, чтобы выполнить локальную замену.