Menonaktifkan indentasi HTML parsial di Vim

9

Peringatan: Saya bukan pengembang web.

Yang sedang berkata, ada kesempatan langka di mana saya harus mengedit HTML. Ketika saya melakukannya, saya telah memperhatikan perilaku di Vim yang tidak saya sukai, dan berharap saya bisa berubah melalui konfigurasi.

Ketika saya kode, saya cenderung untuk membungkus baris pada 80 karakter. Ini sering berarti bahwa saya harus memisahkan tag HTML melintasi garis. Yang saya suka adalah beberapa lekukan yang masuk akal ketika ini terjadi. Jadi, misalnya, saya mungkin memiliki kode berikut dan ingin indentasi yang sama:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
   src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
   class="ri" alt="This is an image"></a>

Namun, secara default, autoimentation Vim akan membuat indentasi tag HTML terpecah ke level yang sama dengan tag HTML yang dimulai pada baris sebelumnya. Dengan kata lain, saya mendapatkan sesuatu seperti berikut:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
                                                              src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
                                                              class="ri" alt="This is an image"></a>

Tepatnya, yang tidak saya inginkan. Karena saya mengetik, saya menemukan saya terus-menerus harus kembali dan memperbaiki lekukan seperti ini.

Saya suka autoindent Vim secara umum, dan tidak ingin menonaktifkannya secara universal. Saya lebih suka menonaktifkan atau mengubah indentasi tag HTML yang dipisah, tetapi saya tidak tahu caranya.

Apakah mungkin untuk mengubah ini?

(Saya sudah mencoba mencari di Stackoverflow untuk pertanyaan ini, tetapi tidak dapat menemukannya. Jika ini merupakan duplikat, harap tunjukkan saya ke yang asli.)

EDIT: Solusi ditemukan di sini https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

EDIT # 2: Oke, solusi di atas tidak menyelesaikan masalah. Masih di sana.

criswell
sumber
1
Saya menemukan contoh lekukan yang Anda berikan dalam cuplikan terakhir yang mengejutkan: Saya telah mencobanya pada instalasi Homebrew vanilla saya (versi 7.4) dan berfungsi seperti yang saya harapkan: ketika saya menekan <Enter> di akhir baris, dengan autoindentvim yang diaktifkan indentasi baris berikutnya sebagai baris yang baru saja saya akhiri. Jadi tebakan saya adalah Anda mungkin memiliki plugin yang mengubah model indentasi default.
Vlad GURDIGA
@ VladGURDIGA, ya, saya mulai curiga. Saya harus menyelam ke vimrc saya dan melihat apa yang bisa saya dapatkan. Vmrc saya ada di sini, btw github.com/criswell/meh/blob/master/vim/.vimrc
criswell
juga periksa ~ / .vim / karena apa pun yang ada juga dimuat, biasanya ftplugins, warna, dan hal-hal autoload lainnya. 8-)
Vlad GURDIGA
Saya juga bertanya di reddit, dan mendapat jawaban ini, yang ternyata memperbaikinya reddit.com/r/vim/comments/3ogbna/… . Saya akan memperbarui pertanyaan saya sesuai.
criswell
Bagus! Terima kasih atas tindak lanjutnya! :)
Vlad GURDIGA

Jawaban:

4

Saya merekomendasikan plugin tidy-html5 .


Sebagai pengembang web sendiri, saya juga merekomendasikan untuk menyelaraskan tag HTML sedikit berbeda,

AirBnb React Styleguide (terbaca)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img
    src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
    class="ri"
    alt="This is an image"
  >
</a>

Google HTML Styleguide (lebih umum)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
       class="ri" alt="This is an image">
</a>

Ini benar-benar akan membantu pemformat menghindari lekukan gila.

Atav32
sumber