আমাকে প্রায়শই ভিএম সহ বিভিন্ন এক্সএমএল ফাইলগুলি সম্পাদনা করতে হয়, যা আকারে বন্যভাবে পরিবর্তিত হয় - কনফিগারেশন ফাইলগুলি থেকে কয়েকটি হুন্ডেড লাইনযুক্ত 2GB অবধি আকারের প্রোডাকশন ডেটা ফাইল পর্যন্ত। সিনট্যাক্স হাইলাইটিং সক্ষম থাকা অবশ্যই বিশাল ফাইলগুলির সাথে ডিল করার সময় একটি খুব খারাপ ধারণা, সুতরাং ফাইলটি একটি প্রান্তিকের চেয়ে বড় হলে আমি এটি অক্ষম করতে চাই।
autocommand
সিনট্যাক্স হাইলাইটিং নিষ্ক্রিয় করতে সরাসরি এটি ব্যবহার করে আমি এটি কাজ করতে পারি না , যেমন শেল থেকে ভিএম শুরু করার সময় সিনট্যাক্স সক্ষম হওয়ার আগে স্পষ্টতই কমান্ডটি কার্যকর করা হয় :
" this autocmd has no effect except for the echo:
autocmd Filetype xml if getfsize(@%) > 1000000 | echom '!' | syntax off | endif
আমি এমন একটি কাজের সন্ধান পেয়েছি যে আমি বিশ্বব্যাপী সিনট্যাক্স হাইলাইটিং অক্ষম করতে পারি, তারপরে এটি এক্সএমএল ব্যতীত অন্য সমস্ত ফাইল টাইপের জন্য আবার চালু করুন এবং ফাইল প্রান্তিকের চেয়ে বড় না হলে ফাইল টাইপ এক্সএমএল জন্য এটি চালু করুন:
syntax off
autocmd Filetype * syntax off
autocmd Filetype * if &ft != 'xml' | syntax enable | endif
autocmd Filetype xml if getfsize(@%) < 1000000 | syntax enable | endif
এটি কাজ করে বলে মনে হচ্ছে তবে ভুল অনুভূত হয় এবং আরও ফাইল টাইপ এবং শর্তের জন্য আমি এটি করতে চাইলে এটি নিয়ন্ত্রণহীন হয়ে উঠবে। তদতিরিক্ত, এটি সমস্ত বাফারকে প্রভাবিত করে। নির্দিষ্ট পরিস্থিতিতে একটি বাফারে সিনট্যাক্স হাইলাইটিং অক্ষম করার সঠিক উপায় কী?