Заключите абзацы с тегами в vim

Я попытался создать отображение, чтобы заключить визуально выбранные абзацы в

теги:

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, но это не помогает, когда выбранный блок содержит несколько абзацев. Приведенное выше сопоставление используется для этого случая, чтобы не заключать ни одного абзаца.

мое отображение сначала добавляет

в конец, затем

в начало выделения, затем оно должно заменить каждое вхождение двух или более линейных разрывов соответствующей комбинацией закрывающего и открывающего тега.

Я до сих пор не понимаю, почему заменяющий шаблон применяется к концу выделения, которое никогда не состоит из двойного линейного разрыва.

15
задан Fazer87
09.12.2022 14:39 Количество просмотров материала 2655
Распечатать страницу

2 ответа

Это не очень жаль, так как это то, что вы спросите явно с:'<,'>s/\n\{2,}/<\/p>\r\r<p>/g<CR> часть.

визуально выбранный блок заключен в <p></p> перед :.

вы знаете о объемный плагин? Это прекрасно решает и другие проблемы. Этот плагин является обязательным при редактировании HTML.

0
отвечен romainl 2022-12-10 22:27

прочитав документацию по \%V более подробно, я могу ответить на вопрос сам:

чтобы убедиться, что весь шаблон находится внутри визуальной области, поместите \ %V в начало и конец шаблона

поэтому мое отображение нужно было изменить на

vnoremap <silent> _p <Esc>`>a</p><Esc>`<i<p><Esc>:'<,'>s/\%V\n\{2,}\%V/<\/p>\r\r<p>/ge<CR>:nohl<CR>

Я извиняюсь за неправильное исследование перед публикацией моего вопроса.

0
отвечен janeden 2022-12-11 00:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх