Saya mencoba membuat pemetaan untuk melampirkan paragraf yang dipilih secara visual di
tag:
vnoremap <silent> _p <Esc>`>a</p><Esc>`<i<p> <Esc>: '<,'> s / \ n \ {2,} / <\ / p> \ r \ r <p> / g <CR>
Sayangnya, pemetaan ini selalu menambahkan yang tidak diinginkan </p>\r\r<p>
pada akhir pemilihan (yaitu di belakang </p>
ditambahkan di belakang karakter terakhir dalam langkah 1).
Pemilihan tidak diakhiri dengan double linebreak, sehingga polanya tidak cocok. Apa yang saya lakukan salah?
Dari Answer
Terima kasih, Romain - Saya telah menginstal plugin surround, tetapi tidak membantu ketika blok yang dipilih berisi beberapa paragraf. Pemetaan di atas digunakan untuk kasus ini, bukan untuk melampirkan satu paragraf.
Pemetaan saya pertama-tama menambahkan </p> ke akhir, kemudian <p> ke awal pemilihan, setelah itu harus mengganti setiap kemunculan dua atau lebih linebreak dengan kombinasi tag pembuka dan pembuka yang sesuai.
Saya masih tidak mengerti mengapa pola penggantian diterapkan pada akhir seleksi, yang tidak pernah terdiri dari double linebreak.
Jawaban:
Ini tidak benar-benar disayangkan karena itulah yang Anda minta dengan jelas dengan
:'<,'>s/\n\{2,}/<\/p>\r\r<p>/g<CR>
bagian itu.Blok yang dipilih secara visual tertutup sempurna
<p></p>
tepat sebelum:
.Apakah Anda tahu tentang plugin surround ? Memecahkan ini dan masalah lainnya dengan indah. Plugin ini adalah suatu keharusan ketika mengedit HTML.
sumber
Setelah membaca dokumentasi pada \% V lebih dekat, saya dapat menjawab pertanyaan itu sendiri:
Jadi pemetaan saya perlu diubah menjadi
Saya minta maaf atas penelitian yang tidak patut sebelum memposting pertanyaan saya.
sumber