Я работаю VIm
и пытаюсь настроить команду поиска и замены, чтобы выполнить некоторые замены, где я могу повторно использовать регулярное выражение, которое является частью моей строки поиска.
Простой пример будет линия , где я хочу заменить (10)
на {10}
, где 10 может быть любое количество.
Я зашел так далеко
.s/([0-9]*)/what here??/
которая соответствует именно той части, которую я хочу.
Сейчас замену я попробовал
.s/([0-9]*)/{\0}/
Но это дает в качестве выхода {(10)}
Затем я попробовал
.s/(\zs[0-9]*\ze)/{\0}/
Тем не менее, это дало мне ({10})
, что я тоже близко, но не то, что я хочу.
Я думаю, что мне нужен какой-то другой вид маркировки / обратных ссылок вместо этого \0
, но я не знаю, где искать. Так что вопрос в том, можно ли это сделать в vim, и если да, то как?
источник
Недавно я унаследовал некоторый унаследованный код и хотел заменить все вхождения, такие как:
в
или
Опираясь на предыдущий ответ и надеясь, что кто-то от него выиграет, я использовал следующую команду, которая изменит все вхождения:
Если вы заменяете
%
с.
и удалить/g
вы будете в конечном итоге сэто позволит вам просмотреть каждый матч и выбрать, изменить его или нет.
источник
Лучший способ дать вам возможность просмотреть каждое совпадение - это добавить символ «c» в конец кода, а не переходить строка за строкой.
источник