Vim: поиск и замена для "&"

Чтобы заменить каждое появление "&" "& &" в диапазоне от текущей линии до еще 30 строк, я выдаю :.,+30s/\\&/\\&\\&/g, но Vim говорит: "Шаблон не найден". Я избегаю специального символа "&" двойным обратным слэшем "\".

Ответы

Ответ 1

Не пытайтесь избежать всех - :.,+30s/&/&&/g, похоже, работает для меня.

Ответ 2

Вам не нужно избегать амперсанда в первой части регулярного выражения. Это имеет особое значение во второй (заменяемой) части.

Вы ищете шаблоны, которые говорят "\ &" и замените их шаблонами, которые говорят "\ &\&".

Простой способ заменить просто:

:.,+30s/&/&&/g

Ответ 3

Также может быть полезно отметить, что если вам нужно изменить положение &, например: _& - &_, следует избегать & только в операторах замены заменяющего выражения:

:.,+30s/ &/\& /g
           ^