Поиск…


Заменить команду

Эта команда:

:s/foo/bar/g

заменяет каждое вхождение foo bar на текущей строке.

fool around with a foodie

становится

barl around with a bardie

Если вы оставите последний /g , он заменит первое появление на линии. Например,

:s/foo/bar

На предыдущей строке

barl around with a foodie

Эта команда:

:5,10s/foo/bar/g

выполняет ту же замену в строках с 5 по 10.

Эта команда

 :5,$s/foo/bar/g

выполняет ту же замену из строки 5 в конец файла.

Эта команда:

:%s/foo/bar/g

выполняет ту же замену на весь буфер.

Если вы находитесь в визуальном режиме и попадете в двоеточие, появится символ '<,'> . Затем вы можете сделать это

:'<,'>s/foo/bar/g

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

Эта команда:

:%s/foo/bar/gc

эквивалентно приведенной выше команде, но запрашивает подтверждение при каждом возникновении с помощью флага /c (для «подтверждения»).

См . :help :s и :help :s_flags .

См. Также этот раздел о диапазонах командной строки .

Заменить с регулярными выражениями или без них

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

:s/foo./bar/g
  1 fooing fooes fool foobar foosup

станет

  1 barng bars bar barar barup

Если вы хотите совместить литерал . вы можете избежать этого в поле поиска с помощью обратной косой черты \ .

:s/foo\./bar/g
  1 fooing fooes foo.l foo.bar foosup

станет

  1 fooing fooes barl barbar foosup

Или отключите все сопоставления шаблонов, выполнив команду s с no .

:sno/foo./bar/g
  1 fooing fooes foo.l foo.bar foosup

вызовет ошибку

  E486: Pattern not found


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow