gVim - memaksa linebreak dalam file besar

1

Saya menyisipkan sepotong XML yang agak besar ke gVim (di Windows) untuk mengeditnya. Alat yang menghasilkan XML tidak dimasukkan ke dalam linebreak apa pun sehingga XML menempel sebagai satu baris, yang membuatnya agak sulit untuk membaca / mengedit / memverifikasi. Saya mencoba trik pemformatan yang biasa gg=G, tapi ini tidak apa-apa, mungkin karena itu bukan format buruk untuk memiliki semuanya pada satu baris. Apakah ada cara cepat dan mudah untuk melakukannya memaksa linebreak dan pemformatan?

FrustratedWithFormsDesigner
sumber

Jawaban:

0
:s/>/\r>/g

kemudian G = gg

sml
sumber
Hmm tidak buruk, tapi sekarang nilai setiap elemen ada di baris baru dengan tag penutup. Saya berharap untuk sesuatu seperti "& lt; a & gt; nilai & lt; / a & gt;", tetapi saya mendapatkan "& lt; a & gt; \ r nilai & lt; / a & gt; "
FrustratedWithFormsDesigner
0

Pendek menggunakan xmllint, saya menemukan saya bisa membersihkannya dengan 2 ekspresi reguler:

:s/></>\r</g
:%s/<\(.*\)>\n\s*<\/\1>/<\1><\/\1>   

dan MAKA berjalan gg=G. Tujuan dari regex kedua adalah untuk memperbaiki hal-hal seperti:

<a>
</a>

dan mengubahnya menjadi <a></a>

Tampaknya berfungsi dengan baik dan saya tidak dapat menemukan data yang hilang / rusak. Saya kira saya bisa membuat semuanya menjadi makro atau sesuatu ...

FrustratedWithFormsDesigner
sumber