जवाबों:
Fileencoding सेटिंग वर्तमान बफ़र एन्कोडिंग दिखाता है:
:set fileencoding
fileencoding=utf8
वास्तव में एक प्लेनटेक्स्ट फ़ाइल के एन्कोडिंग को निर्धारित करने का एक सामान्य तरीका नहीं है, क्योंकि यह जानकारी फ़ाइल में ही सहेजी नहीं गई है - यूटीएफ -8 फ़ाइलों को छोड़कर जहां आपको एक तथाकथित बीओएम मिला है जो एन्कोडिंग को इंगित करता है। यही कारण है कि xml और html फ़ाइलों में मेटाटैग का आकर्षण होता है।
आप 'एन्कोडिंग' सेटिंग के साथ किसी विशेष एन्कोडिंग को लागू कर सकते हैं। संपादक इन सेटिंग्स को कैसे संभालता है, इसे देखें :help encodingऔर :help fileencodingविम में देखें । तुम भी अपने vimrc करने के लिए कई fileencoding सेटिंग्स जोड़ सकते हैं सूचीबद्ध लोगों के आधार पर पता लगाने की कोशिश करने के लिए है।
ध्यान दें कि फ़ाइलों की एन्कोडिंग स्पष्ट रूप से किसी फ़ाइल में कहीं भी नहीं बताई गई है। इस प्रकार, VIM और अन्य अनुप्रयोगों को एन्कोडिंग पर अनुमान लगाना चाहिए। ऐसा करने का विहित तरीका chardetआवेदन के साथ है , जिसे VIM के भीतर से चलाया जा सकता है:
:!chardet %
Jtimberman द्वारा प्रदान किया गया उत्तर आपको वर्तमान बफर की एन्कोडिंग दिखाता है जो डिस्क पर फ़ाइल के समान एन्कोडिंग नहीं हो सकती है। इस प्रकार, आप देखेंगे कि chardetकभी-कभी VIM की तुलना में एक अलग एन्कोडिंग दिखाई देगा, खासकर यदि आपने VIM को हमेशा एक विशिष्ट एन्कोडिंग (यानी UTF-8) का उपयोग करने के लिए कॉन्फ़िगर किया है।
इसके बारे chardetमें अच्छी बात यह है कि यह अपने अनुमान के लिए एक आत्मविश्वास स्कोर देता है, जबकि VIM हो सकता है (और अक्सर) एन्कोडिंग का अनुमान लगाने के बारे में गलत है यदि \ x7F (ASCII 127) के ऊपर कई वर्ण नहीं हैं। उदाहरण के लिए, אPHP कोड की एक लंबी फ़ाइल में एक एकल जोड़ने से chardetलगता है कि फ़ाइल ISO-8859-20.72 के विश्वास के साथ है, जबकि थोड़े लंबे वाक्यांश שלום, עולם!को जोड़ने पर यह UTF-8 को 0.99 के आत्मविश्वास स्कोर के साथ देता है। दोनों मामलों में, नहीं set fileencoding?दिखाया गया UTF-8क्योंकि डिस्क पर फ़ाइल UTF-8 थी, लेकिन क्योंकि VIM UTF-8 का आंतरिक रूप से उपयोग करने के लिए कॉन्फ़िगर किया गया है।
chardet <file>:। फिर भी, अच्छा सुझाव।
मैंने पाया कि: https://vim.fandom.com/wiki/Reloading_a_file_using_a_different_encoding
यदि आप सही एन्कोडिंग का पता लगाने में सक्षम नहीं थे, तो आप एक अलग एन्कोडिंग का उपयोग करके किसी फ़ाइल को पुनः लोड कर सकते हैं:
:e ++enc=<encoding>
जहां encodingहो सकता हैcp850, ISO-8859-1, UTF-8, ...
आप उपयोग कर सकते हैं file yourfilenameएन्कोडिंग या खोजने के लिए chardetect(द्वारा प्रदान की python-chardetया uchardetआधार पर अपने लिनक्स वितरण) के रूप में dotancohen ने सुझाव दिया।