Мне нужно добавить обратную косую черту \ к каждому символу в строке, исключая любые начальные пробелы. Я верил, что следующее поможет.

:s/^\s*\(.\)\+/\\\1/g

но это дает этот результат для показанной строки

   abcde
\e

т.е. он показывает только последнюю такую замену, а не каждую из них.

Vim предоставляет 2 механизма регулярных выражений, к которым вы можете получить явный доступ, добавив в строку поиска либо «\% # = 1», либо «\% # = 2». Оба дают одинаковый результат.

Может кто-нибудь объяснить, что я здесь делаю не так?

1 ответ1

2

Ваше регулярное выражение захватывает всю входную строку, abcde захватывает 'e' и заменяет ее на \e .

Вы, вероятно, хотите что-то еще, как это:: :s/\S/\\&/g

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .