যখন ভিম একটি বিদ্যমান ফাইল পড়ে, তখন ফাইল এনকোডিং সনাক্ত করার চেষ্টা করে। ফাইলটি লেখার সময়, ভিম এটি সনাক্ত করা ফাইল এনকোডিংটি ব্যবহার করে (যখন আপনি এটি আলাদাভাবে বলবেন তা বাদে)। সুতরাং ইউটিএফ -8 হিসাবে চিহ্নিত একটি ফাইলকে ইউটিএফ -8 হিসাবে লেখা হয়েছে, লাতিন -1 হিসাবে চিহ্নিত একটি ফাইল লাতিন -1 হিসাবে লেখা হয়েছে, এবং আরও অনেক কিছু।
ডিফল্টরূপে, সনাক্তকরণ প্রক্রিয়াটি অশোধিত। আপনি ভিমের সাথে খোলার প্রতিটি ফাইল ল্যাটিন -১ হিসাবে ধরে নেওয়া হবে, যদি না এটি শীর্ষে একটি ইউনিকোড বাইট-অর্ডার চিহ্ন সনাক্ত করে। বাইট-অর্ডার চিহ্ন ছাড়াই একটি ইউটিএফ -8 ফাইল সম্পাদনা করা শক্ত হবে কারণ কোনও মাল্টিবাইট অক্ষর বাফারে একক অক্ষরের পরিবর্তে অক্ষর অনুসারে প্রদর্শিত হবে।
সবচেয়ে খারাপ, ডিফল্টভাবে, ভিম, বাফারটিতে পাঠ্যের প্রতিনিধিত্ব করতে ল্যাটিন -1 ব্যবহার করে। সুতরাং বাইট-অর্ডার চিহ্ন সহ একটি ইউটিএফ -8 ফাইলটি ল্যাটিন -1 এ ডাউন-রূপান্তর দ্বারা দূষিত হবে।
সমাধানটি হল অভ্যন্তরীণভাবে ইউটিএফ -8 ব্যবহার করার জন্য ভিমকে কনফিগার করা। প্রকৃতপক্ষে এটি ভিম ডকুমেন্টেশনে সুপারিশ করা হয়েছে এবং বাক্সের বাইরে সেভাবে কনফিগার না হওয়ার একমাত্র কারণ হ'ল যে ব্যবহারকারীরা ভিটকে ল্যাটিন -১ সম্পাদক হিসাবে কাজ করবেন বলে আশা করছেন তাদের মধ্যে প্রচণ্ড বিভ্রান্তি সৃষ্টি করা এড়ানো।
আপনার মধ্যে .vimrc
, set encoding=utf-8
ভিম যুক্ত এবং পুনরায় চালু করুন ।
বা পরিবর্তে, LANG
ইউটিএফ -8 আপনার পছন্দসই অক্ষর এনকোডিং হয়েছে তা নির্দেশ করতে পরিবেশের পরিবর্তনশীল সেট করুন । এটি কেবল ভিমকে নয় এমন কোনও সফ্টওয়্যারকে প্রভাবিত করবে যা LANG
পাঠ্যের প্রতিনিধিত্ব করবে কীভাবে তা নির্ধারণ করতে নির্ভর করে । উদাহরণস্বরূপ, যা নির্দেশ করে টেক্সট ইংরেজি (প্রদর্শিত হওয়া উচিত en
, যেমন মার্কিন যুক্তরাষ্ট্র (উচ্চারিত) US
), কারণ যে হল UTF-8 (এনকোড utf-8
), সেট LANG=en_US.utf-8
।
এখন ভিফ বাফারের পাঠ্যটি উপস্থাপন করতে ইউটিএফ -8 ব্যবহার করবে। এছাড়াও, এটি কোনও ফাইলের ইউটিএফ -8 এনকোডিং সনাক্ত করার জন্য আরও দৃ determined় প্রচেষ্টা করবে। বাইট-অর্ডার চিহ্নটি সন্ধানের পাশাপাশি এটি ল্যাটিন -১ এ ফিরে যাওয়ার আগে বাইট-অর্ডার চিহ্ন ছাড়াই ইউটিএফ -8 পরীক্ষা করবে। সুতরাং এটি আর ইউটিএফ -8 এ কোড করা কোনও ফাইলকে দূষিত করবে না এবং সম্পাদনার সময় এটির যথাযথভাবে ইউটিএফ -8 অক্ষর প্রদর্শন করা উচিত।
কিভাবে তেজ ফাইল এনকোডিং সনাক্ত করে আরও তথ্যের জন্য, দেখুন তেজ ডকুমেন্টেশনে বিকল্প ।fileencodings
এনকোডিং যে তেজ অভ্যন্তরীণভাবে ব্যবহার সেটিং সম্পর্কে আরো তথ্যের জন্য, দেখুন
বিকল্প ।encoding
আপনি সময় ব্যবহৃত একটি ফাইল ফিরে ডিস্কে লেখা এনকোডিং ওভাররাইড করার প্রয়োজন হলে, দেখতে
বিকল্প ।fileencoding
.vimrc
; প্রকৃতপক্ষে এনকোডিংয়ের ডিফল্ট মান হ'ল "latin1" বা system LANG এর থেকে মান, যা আমার সিস্টেমে সেট করা আছেen_US.UTF-8
। এই কারণে বাক্স বাইরে:set encoding
দেয়encoding=utf-8
। যেমনটি প্রত্যাশিত, ল্যাং যদি সেট না করে থাকে:set encoding
তবে দেয়encoding=latin1
। মহান উত্তরের জন্য ধন্যবাদ!