Bagaimana cara memperbaiki lekukan file html besarnya yang semuanya kacau?
Saya mencoba "gg=G
perintah yang biasa , yang saya gunakan untuk memperbaiki indentasi file kode. Namun, sepertinya itu tidak berfungsi dengan baik pada file HTML. Itu hanya menghapus semua format.
Saya juga mencoba pengaturan :filetype = xml
, untuk melihat apakah mengelabui ke berpikir ini adalah file XML akan membantu tetapi masih tidak melakukannya.
html
vim
vi
indentation
mmcdole
sumber
sumber
Ada beberapa hal yang perlu dilakukan. Untuk meringkas semuanya dalam satu lokasi:
Atur opsi berikut:
Lalu pindahkan kursor ke atas file dan indentasi ke akhir:
gg
=G
Atau pilih teks yang diinginkan untuk indentasi dan tekan =untuk indentasi itu.
sumber
home.html
. Saya tidak punya masalah untuk membuat indentasi file .php. Di sini Anda memiliki .vimrc saya: pastebin.com/FAJ0MCA9vim 7.4
default setting lekukan akan gagal untuk contoh ini, sebagaihtml
,body
, danp
tidak menjorok secara default. Lihat jawaban ini .smartindent
tidak perlu. Juga disetel untuk C dan C ++, saya lebih suka menggunakan yang lebih umumautoindent
.Masalah utama menggunakan indentasi pintar adalah bahwa jika XML (atau HTML) berada pada satu baris karena mungkin akan kembali dari permintaan curl maka
gg=G
tidak akan berhasil. Sebaliknya saya baru saja mengalami lekukan yang bagus menggunakan rapi langsung dipanggil dari VI:Ini pada dasarnya memberitahu VI untuk memanggil rapi untuk membersihkan file XML tidak membungkus baris untuk membuatnya sesuai pada garis lebar 68 karakter default. Saya memproses file XML 29MB yang besar dan butuh 5 atau 6 detik. Saya kira untuk file HTML perintahnya seharusnya:
Seperti disebutkan dalam komentar,
tidy
adalah alat dasar yang dapat Anda temukan di banyak sistem Linux / MacOS dasar. Ini adalah halaman projet jika Anda menginginkannya tetapi tidak: HTML Tidy .sumber
Seperti yang dijelaskan tylerl di atas, tetapkan yang berikut ini:
Namun, catatan bahwa dalam vim 7,4 tag HTML
html
,head
,body
, dan beberapa orang lain yang tidak menjorok secara default. Ini masuk akal, karena hampir semua konten dalam file HTML termasuk dalam tag tersebut. Jika Anda benar-benar menginginkannya, Anda bisa membuat tag itu di-indentasi seperti:Lihat " indentasi HTML tidak berfungsi di Vim 7.4 yang dikompilasi, ada ide? " Dan " skrip indentasi html alternatif " untuk informasi lebih lanjut.
sumber
Ini adalah solusi saya yang berfungsi dengan baik untuk membuka HTML "jelek" dengan jarak yang baik:
sw
perintah karena default saya adalah 4, yang terlalu tinggi untuk HTML.>
).=
.>
(karena saya milikiset hlsearch
di vimrc saya).Anda bahkan dapat menambahkan
| wq! fileOut.html
sampai akhir jika Anda tidak ingin memasukkan Vim sama sekali, tetapi cukup bersihkan file tersebut.sumber
:%s/>\s*/>\r/g
(menambahkang
pengganti global, dan\s*
menghapus spasi spasi tambahan). Saya juga menambahkan:%s/</\r</g
untuk menambahkan baris baru sebelum braket terbuka. Kalau tidak, tag suka<td>foo</td>
akan dipisah seperti<td>
danfoo</td>
.Saya menggunakan skrip ini: https://github.com/maksimr/vim-jsbeautify
Di tautan di atas Anda memiliki semua info:
:call HtmlBeautify()
Melakukan pekerjaan dengan indah!
sumber
Sudahkah Anda mencoba menggunakan skrip indentasi HTML di situs Vim?
sumber
/usr/share/vim/vim74/indent/html.vim
) "2014 Jul 04: Vim 7.4.356 atau yang lebih baru termasuk turunan dari skrip ini (skrip resmi sekarang dikelola oleh Bram dan termasuk perubahan besar-besaran)"Berikut adalah solusi berat yang membuat Anda indentasi, ditambah semua pencetakan cantik HTML yang tidak perlu Anda pedulikan saat mengedit.
Pertama, unduh Tidy . Pastikan Anda menambahkan biner ke jalur Anda, sehingga Anda dapat memanggilnya dari lokasi mana pun.
Selanjutnya, buat file konfigurasi yang menjelaskan rasa HTML favorit Anda. Dokumentasi tidak bagus untuk Tidy, tapi di sini adalah ikhtisar , dan daftar semua opsi . Ini file konfigurasi saya:
Simpan ini sebagai
tidyrc_html.txt
diftplugin
folder Anda (di bawah vimfiles).Satu file lagi: tambahkan baris berikut ke (atau buat)
html.vim
, juga diftplugin
:Untuk menggunakannya, cukup buka file HTML, dan ketik
/tidy
. (Itu/
adalah<leader>
kunci.)Ini dia! Bukan solusi cepat, dengan cara apa pun, tetapi sekarang Anda sedikit lebih siap untuk mengedit file HTML yang besar dan kacau itu.
sumber
Anda dapat mengintegrasikan tidy dan html-beautify secara otomatis dengan menginstal plugin vim-autoformat . Setelah itu, Anda dapat menjalankan formatter mana saja yang diinstal dengan satu keystroke.
sumber
Jika autoformat / indentasi vim
gg=G
tampaknya "rusak" (seperti meninggalkan indentasi setiap baris), kemungkinan besar plugin indent tidak diaktifkan / dimuat. Seharusnya benar-benar memberikan pesan kesalahan daripada hanya melakukan indentasi buruk, jika tidak, pengguna hanya berpikir fitur autoformat / indentasi buruk, padahal sebenarnya cukup bagus.Untuk memeriksa apakah plugin indent diaktifkan / dimuat, jalankan
:scriptnames
. Lihat apakah.../indent/html.vim
ada dalam daftar. Jika tidak, berarti plugin tidak dimuat. Dalam hal ini, tambahkan baris ini ke~/.vimrc
:Sekarang jika Anda membuka file dan menjalankannya
:scriptnames
, Anda akan melihat.../indent/html.vim
. Kemudian jalankangg=G
, yang seharusnya melakukan autoformat / indent yang benar sekarang. (Meskipun tidak akan menambah baris baru, jadi jika semua kode html berada pada satu baris, itu tidak akan diindentasi).Catatan: jika Anda
:filetype plugin indent on
menggunakan baris perintah vim alih-alih~/.vimrc
, Anda harus membuka kembali file tersebut:e
.Juga, Anda tidak perlu khawatir tentang
autoindent
dansmartindent
pengaturan, mereka tidak relevan untuk ini.sumber