Я хотел визуально отметить несколько линий, а затем окружить весь диапазон
и
. После долгих раздумий я придумал следующую команду, которая начинает работать:
:'<,'>s/^\(\_.*\)\%V/<p>\1<\/p>/
Есть ли лучший способ сделать это или кто-то может объяснить, почему это работает?
\_.
соответствует каждому символу, включая конец строки. Швы ^
(начало строки) и \%V
(соответствуют визуальному диапазону) ведут себя странно. Например, документация предполагает, что вы используете два \%V
, чтобы окружить свое выражение, но это не требует швов. Использование no \%V
или наличие только одного в начале соответствует всему буферу. Удаление ^
приводит к тому, что последняя строка сопоставляется и подставляется отдельно. A $
в конце швов также не требуется.