Я попытался создать отображение, чтобы заключить визуально выбранные абзацы в
теги:
vnoremap <silent> _p <Esc>`>a</p><Esc>`<i<p><Esc>:'<,'>s/n{2,}/</p>rr<p>/g<CR>
к сожалению, это отображение всегда добавляет нежелательный </p>rr<p>
в конце выделения (т. е. за </p>
добавлено за последним символом в шаге 1).
выбор не заканчивается двойным разрывом линий, поэтому шаблон не должен совпадать. Что я делаю неправильно?
от Ответ
спасибо, Romain-у меня установлен плагин surround, но это не помогает, когда выбранный блок содержит несколько абзацев. Приведенное выше сопоставление используется для этого случая, чтобы не заключать ни одного абзаца.
мое отображение сначала добавляет
в конец, затем
в начало выделения, затем оно должно заменить каждое вхождение двух или более линейных разрывов соответствующей комбинацией закрывающего и открывающего тега.
Я до сих пор не понимаю, почему заменяющий шаблон применяется к концу выделения, которое никогда не состоит из двойного линейного разрыва.