Vim memeriksa ejaan dalam file XML di mana saya tidak menginginkannya, dan hanya di sana

1

Saya mencoba menggunakan pemeriksaan ejaan bawaan Vim di beberapa dokumen XML. Ini terjadi hanya dengan memiliki sintaks XML dimuat, seperti terlihat pada contoh minimalis berikut (yang mereproduksi apa yang juga saya lihat dalam dokumen XML besar):

periksa ejaan tetapi tidak xml

Perhatikan bahwa diberi dua buffer dengan persis konten yang sama, ketika Filetypeadalah text, pemeriksaan ejaan bekerja; ketika itu xml, tidak. spelldiatur di kedua buffer.

Namun, mengingat pandangan ini dari tiga baris teratas dari dokumen XML besar, Anda dapat melihat bahwa pemeriksaan ejaan sudah pasti:

pemeriksaan ejaan bekerja pada atribut

tetapi hanya memeriksa atribut.

Gangguannya adalah tidak ada satu pun hal yang ditemukan ternyata salah eja, dan tidak menemukan banyak kesalahan ejaan dalam dokumen. Saya ingin minimal untuk menemukan kesalahan ejaan di tubuh dokumen, dan mampu mematikan memeriksa atribut akan menjadi opsi yang bagus.

Saya telah mencari @NoSpelldi dalam xml.vimfile, tetapi tidak mengembalikan hit.

Kazark
sumber

Jawaban:

1

Pertanyaan StackOverflow ini berisi jawaban parsial, yang mengaktifkan pemeriksaan ejaan di bagian utama dokumen. Saya menempatkan ini di bagian autocommand saya yang menginisialisasi file XML saya:

set spell
syntax spell toplevel
let &spellfile=$HOME . "/.xml." . &encoding . ".add"

Perintah pertama memastikan ejaan aktif. Yang kedua adalah perbaikan parsial; yang ketiga mengatur file seperti /home/usr/.xml.utf-8.addfile untuk menyimpan kata-kata yang ditambahkan ke kamus ejaan untuk file XML UTF-8.

Karena saya telah membuat file ini khusus untuk file XML, jika saya tidak takut membuat yang xslakan mewakili kesalahan ejaan yang sebenarnya di tempat lain dalam dokumen, saya dapat menambahkannya ke kamus, dll; dan dengan demikian itu bisa menjadi jawaban penuh.

Namun, saya menemukan cara yang lebih baik untuk menonaktifkan pemeriksaan ejaan pada atribut: mengubah @Spellterkait dengan atribut xml.vimke @NoSpell(baris ini berada di dekat bagian atas file):

syn region  xmlString contained start=+"+ end=+"+ contains=xmlEntity,@NoSpell display
syn region  xmlString contained start=+'+ end=+'+ contains=xmlEntity,@NoSpell display

Bersama-sama, dua set perintah ini memberikan solusi lengkap.

tetap

Kazark
sumber