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