Vim में utf-8 को एन्कोडिंग और फाइलनकोडिंग सेट करें


95

इन दोनों आज्ञाओं में क्या अंतर है?

  • set encoding=utf-8
  • set fileencoding=utf-8

क्या मुझे utf-8 का उपयोग करते समय दोनों सेट करने की आवश्यकता है?

इसके अलावा, क्या मुझे setया के साथ फाइलकोडिंग सेट करने की आवश्यकता हैsetglobal ?


ध्यान दें कि यदि आप एक गैर-यूनिकोड फ़ाइल संपादित करेंगे, तो यह विम के लिए मजबूर करने के बजाय आपके LOCALE में एन्कोडिंग सेट करने के लिए सुरक्षित है। आपको LOCALE पर डिफ़ॉल्ट होने के समान परिणाम प्राप्त होंगे और यदि मिले तो आप किसी भी विदेशी वर्ण को गड़बड़ नहीं करेंगे।
समयसीमा

जवाबों:


89

टी एल; डॉ

पहले मामले में set encoding=utf-8, आप आउटपुट एन्कोडिंग को बदल देंगे जो दिखाया गया है टर्मिनल में ।

दूसरे मामले में set fileencoding=utf-8, आप लिखी गई फ़ाइल के आउटपुट एन्कोडिंग को बदल देंगे ।

जैसा कि @ डेनिस ने कहा है, अगर आप हमेशा काम करना चाहते हैं तो आप उन्हें अपने ~ / .vimrc में सेट कर सकते हैं utf-8

अधिक जानकारी

वीआइएम के विकी से लेकर यूनिकोड के साथ काम करने के बारे में

" encodingसेट करता है कि विम आंतरिक रूप से वर्णों का प्रतिनिधित्व कैसे करेगा । यूनिकोड के अधिकांश जायके के लिए यूटीएफ -8 आवश्यक है।"

" किसी विशेष फ़ाइल (बफर के लिए स्थानीय) के लिए एन्कोडिंगfileencoding सेट करता है : सेटग्लोडी डिफ़ॉल्ट मान सेट करता है। एक रिक्त मान का भी उपयोग किया जा सकता है: यह 'एन्कोडिंग' के समान ही डिफॉल्ट करता है। या आप एक यूको एन्कोडिंग सेट करना चाह सकते हैं। यह आपके विशेष वर्णों के मिश्रण के आधार पर एक ही डिस्क फ़ाइल को बड़ा या छोटा बना सकता है। इसके अलावा, IIUC, utf-8 हमेशा बड़ा-एंडियन (उच्च बिट पहले) है, जबकि ucs बड़े-एंडियन या छोटे-एंडियन हो सकते हैं, इसलिए यदि आप इसका उपयोग करें, आपको संभवतः "बम" (नीचे देखें) सेट करने की आवश्यकता होगी। "


3
क्षमा करें, मुझे समझ नहीं आया। फाइलएन्कोडिंग अधिक सटीक रूप से क्या करता है?
किरील ज़ोल्टन

25
पहले मामले में, आप टर्मिनल में दिखाए गए आउटपुट एन्कोडिंग को बदल देंगे। दूसरे मामले में, आप लिखी गई फ़ाइल के आउटपुट एन्कोडिंग को बदल देंगे।
एड्रियन लैक्रोसिक्स

1
+1 छोटे और मीठे उत्तर के लिए, केवल आधिकारिक दस्तावेज दोहराने के बजाय! :)
425nesp

यदि कमांड लाइन से सीधे तदर्थ की आवश्यकता है vim -c "set encoding=utf-8" file.ext
हंस गिन्जेल

87
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

~/.vimrcयदि आप हमेशा utf-8 के साथ काम करना चाहते हैं, तो आप दोनों को अपने में सेट कर सकते हैं ।


0

आप अपने .vimrc में वैरिएबल 'fileencodings' सेट कर सकते हैं।

यह मौजूदा फ़ाइल को संपादित करने के लिए शुरू होने वाले चरित्र एन्कोडिंग की एक सूची है। जब कोई फ़ाइल पढ़ी जाती है, तो विम पहले उल्लेखित वर्ण एन्कोडिंग का उपयोग करने की कोशिश करता है। यदि एक त्रुटि का पता चला है, तो सूची में अगले एक का प्रयास किया जाता है। जब एक एन्कोडिंग पाया जाता है जो काम करता है, तो 'फाइलकोडिंग' इसके लिए सेट है। यदि सभी विफल हो जाते हैं, तो 'फाइलनकोडिंग' को एक खाली स्ट्रिंग पर सेट किया जाता है, जिसका अर्थ है कि 'एन्कोडिंग' का उपयोग किया जाता है।

देख :help filencodings

यदि आप अक्सर उदाहरण के लिए cp1252 के साथ काम करते हैं, तो आप इसे वहां जोड़ सकते हैं:

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.