मेरे पास एक टेक्स्ट फाइल है। मुझे इसे UTF8 बनाने के लिए कहा गया है। मैं विम के साथ ऐसा कैसे कर सकता हूं?
मेरे पास एक टेक्स्ट फाइल है। मुझे इसे UTF8 बनाने के लिए कहा गया है। मैं विम के साथ ऐसा कैसे कर सकता हूं?
जवाबों:
यदि आप किसी फ़ाइल को latin1 के रूप में एन्कोडेड संपादित कर रहे हैं, तो आप पाएंगे कि उस बफर के लिए 'fileencoding' 'latin1' पर सेट है। इसलिए आपको फ़ाइल को सहेजने से पहले फ़ाइलकोड को मैन्युअल रूप से सेट करना होगा।
:set fileencoding=utf8
:w myfilename
यह भी ध्यान दें कि UTF8 फाइलें अक्सर बाइट ऑर्डर मार्क (BOM) से शुरू होती हैं, जो एंडियननेस को इंगित करता है। बीओएम वैकल्पिक है, लेकिन कुछ कार्यक्रमों को विशेष रूप से इसका इस्तेमाल फ़ाइल एन्कोडिंग निर्धारित करने के लिए। कुछ शर्तों के तहत विम BOM लिखेंगे लेकिन कभी-कभी ऐसा नहीं होगा। BOM यह स्पष्ट रूप से सेट करने के लिए:
:set bomb
अधिक जानकारी के लिए :help mbyte-options
और :help utf8
और :help bomb
।
set fileencoding=utf-8
फिर से सामने आना होगा। विम ने बीओएम को नोटिस नहीं किया यदि आपने इसे एक लिखने के लिए कहा था (और यह वास्तव में इसे लिखता है)। Utf-8 काम करने के लिए, आपको उसकी या set encoding=utf-8
अपनी स्टार्टअप सेटिंग्स में चाहिए। कम से कम, यह मेरे सिस्टम पर कहानी है।
:w ++enc=utf-8 %
फ़ाइल को utf-8 एन्कोडिंग में डिस्क पर लिखने के लिए।
fileencoding
, तो :w ++enc=utf-8
एक बार मान्य है, लेकिन अगली बार जब आप दौड़ेंगे :w
, तो मूल्य का 'fileencoding'
उपयोग किया जाएगा, और यदि आपने इसे नहीं बदला है (स्पष्ट रूप से संपादन करते समय, या फ़ाइल को फिर से लोड करके, उम्मीद करना यह 'fencs'
उचित रूप से सेट किया गया है और वास्तविक एन्कोडिंग अच्छी तरह से पता लगाया गया है), पुरानी एन्कोडिंग वापस आ जाएगी।
fileencoding
भी इस सवाल का एक वैध जवाब है, जिससे आईएमओ बुरी आदतों को जन्म नहीं देता है। लेकिन ठीक है, यह सिर्फ मेरे मन की बात है।