Sıklıkla, birkaç hunded satır içeren yapılandırma dosyalarından 2GB'a kadar boyutlardaki üretim veri dosyalarına kadar çok çeşitli boyutlarda vim ile çeşitli XML dosyalarını düzenlemek zorundayım. Sözdizimi vurgulama etkin olması elbette çok büyük dosyaları ele alırken çok kötü bir fikir, bu yüzden dosya bir eşik daha büyükse devre dışı bırakmak istiyorum.
Kabuktan vim başlatılırken sözdizimi etkinleştirilmeden önceautocommand
komut yürütüldüğünden, sözdizimi vurgulamayı devre dışı bırakmak için doğrudan kullanarak bunu çalıştıramadım :
" this autocmd has no effect except for the echo:
autocmd Filetype xml if getfsize(@%) > 1000000 | echom '!' | syntax off | endif
Ben sözdizimi küresel vurgulama devre dışı bırakabilirsiniz, daha sonra xml dışındaki tüm dosya türleri için yeniden açın ve dosya eşik daha büyük değilse filetype xml için açın bir çözüm buldum:
syntax off
autocmd Filetype * syntax off
autocmd Filetype * if &ft != 'xml' | syntax enable | endif
autocmd Filetype xml if getfsize(@%) < 1000000 | syntax enable | endif
Bu işe yarıyor gibi görünüyor, ancak yanlış geliyor ve bunu daha fazla dosya türü ve koşul için yapmak istediğimde yönetilemez hale gelecek. Ayrıca, tüm tamponları etkiler. Belirli koşullar altında bir arabellekte sözdizimi vurgulamayı devre dışı bırakmanın doğru yolu nedir?