VIM या Gvim में UTF-8 वर्ण कैसे देखें


106

मैं समय-समय पर गैर-अंग्रेजी लिपियों को शामिल करने वाले वेबपृष्ठों पर काम करता हूं, उनमें से अधिकांश utf-8 charset का उपयोग करते हैं, VIM और Gvim UTF-8 वर्णों को सही ढंग से प्रदर्शित नहीं करते हैं।

खिड़कियों पर विम 7.3.46 का उपयोग करते हुए 7 64 बिट के साथ, set guifont=Monaco:h10_vimrc में

क्या इसे ठीक करने का कोई तरीका है?

अपडेट: मैंने चारों ओर गुगली की है और set guifontwideक्षेत्रीय भाषाओं के लिए दूसरी गिरावट के रूप में पाया है ।

मैंने निम्नलिखित पंक्तियों को _vrc में जोड़ा और मेरी अधिकांश समस्याएं हल हो गईं।

set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12

उपरोक्त NSimsun फ़ॉन्ट चीनी के लिए काम करता है, समस्या यह है कि मुझे नहीं पता कि उन्हें VIM के साथ काम करने के लिए फ़ॉन्ट नाम कैसे मिला, Courier Newइसका उल्लेख फ़ॉन्ट निर्देशिका में Courier_Newभी NSimsunकहीं नहीं है। जिस फ़ॉन्ट का मैं उपयोग करना चाहता हूं Latha, लेकिन, मुझे नहीं पता कि इसका उपयोग _vimrc फ़ाइल में कैसे किया जाए। set guifontwide=latha:h12या set guifontwide=Latha:h12काम नहीं करता है।

मैं सफलतापूर्वक सेट करते हैं guifontwideकरने के लिए lathaहै, तो मेरी समस्या हल हो जाएगा, यह कैसे करना है?


का मान 'guifont'और मूल्य क्या है 'guifontwide'? इसके अलावा, आप किस ओएस का उपयोग कर रहे हैं और किस संस्करण का उपयोग कर रहे हैं?
बेनोइट

सतीश, क्या आप इसके लिए कोई समाधान खोजने में सक्षम थे? मैं eKalappai सॉफ्टवेयर के साथ gVim में टाइप करने की कोशिश कर रहा हूँ, लेकिन विम केवल मुझे दिखा रहा है ?? वर्ण (जाहिरा तौर पर उन्हें उसी तरह से बचाते हुए)।
सूंदर -

@ सूंदर नं। मैं हार गया: |
सतीश मनोहर

मेरी समस्या यह थी कि inconsolata-g मेरे दस्तावेज़ में utf-8 वर्णों का समर्थन नहीं करता है।
एंड्रयूपीके

set guifontwide=NSimsun:h12मेरे लिए विफलताओं का उपयोग करते हुए , "अमान्य विस्तृत फ़ॉन्ट" शायद एक ही गैर-मोनोपेस मुद्दा है?
मकेव

जवाबों:


61

दस्तावेज़ का उपयोग करके पुनः लोड करने का प्रयास करें:

:e! ++enc=utf8

यदि वह काम करता है तो आपको शायद fileencodingsअपने .vimrc में सेटिंग्स बदलनी चाहिए ।


2
मेरे लिए कुछ भी नहीं बदलता है
थॉमस लेवेस्क

8
अपने काम को बचाने से पहले इसे चलाएं क्योंकि यह आपके द्वारा किए गए परिवर्तनों को मिटा देगा। :uहालांकि आपको बचा लेगा।

केवल पढ़ने के लिए करने के लिए इसके अलावा इस सेट फ़ाइल आप ऐसा करते हैं, तो आप भी तो चलाने के लिए की जरूरत है ताकि:set noro
मैट Vukomanovic

2
इसके लिए धन्यवाद। विम मेरे मामले में utf-8 का प्रतिपादन नहीं कर रहा था क्योंकि मेरे पास बाइनरी डेटा (मल्टीपार्ट / फॉर्म-डेटा अटैचमेंट पार्ट) का एक ब्लॉक था। जब मैंने किया :e! ++enc=utf8, तो उसने utf-8 को रेंडर किया, लेकिन [ILLEGAL BYTE in line 286]फाइल के अंदर शिकायत की (पहली बाइनरी पार्ट लाइन)। मुझे लगता है कि डिफ़ॉल्ट व्यवहार कुछ अन्य एन्कोडिंग के लिए चुपचाप वापस गिरने के लिए है जब यह विम उद्घाटन पर होता है। किसी कारण के लिए, हालांकि, echo &encउस मामले में अभी भी utf-8 की रिपोर्ट करता है।
दिमित्री मिन्कोवस्की

1
@DmitryMinkovsky, &encबफर सामग्री को संग्रहीत करने के लिए आंतरिक रूप से एन्कोडिंग का उपयोग करता है। वर्तमान फ़ाइल के लिए एन्कोडिंग में सेटिंग है&fenc
बेनोइट

60

क्या आप ने कोशिश की

:set encoding=utf-8
:set fileencoding=utf-8

?


5
मैं इन दोनों सेटिंग्स के साथ कोशिश की है, और अभी भी मैं utf-8 अक्षर नहीं देख सकता।
सतीश मनोहर

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

:set encoding=utf8 बफर को रीफ्रेश करेंगे और यदि समस्या गलत एन्कोडिंग में थी, तो वह इसे ठीक कर देगा। मैंने set fileencoding=utf8विकल्प जोड़ा ताकि आप बचत करते समय सबसे भ्रामक "कुछ चरित्र को परिवर्तित नहीं कर सकें" त्रुटि में न चलें।
मैक्सिम चाल्को

एन्कोडिंग काम किया। मैंने एन्कोडिंग = utf8 से .vimrc फ़ाइल जोड़ी और अब utf8 के साथ सब कुछ ठीक है।
सिकंदर किम

OSX पर, मैंने (कॉलन के बिना) इन दो पंक्तियों को अपने साथ जोड़ा है ~/.vimrcऔर इसने ठीक काम किया है
lionello

7

यदि जापानी लोग यहां आते हैं, तो कृपया निम्नलिखित पंक्तियों को अपने साथ जोड़ें ~/.vimrc

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac

6

Microsoft Windows पर, gvim आपको गैर-मोनोस्पेस फ़ॉन्ट का चयन करने की अनुमति नहीं देगा। दुर्भाग्य से लट्ठा एक गैर-मोनोपॉज़ फ़ॉन्ट है।

इसे बनाने के लिए एक हैक तरीका है: Fonthaorge का उपयोग करना (आप विंडोज बाइनरी को http://www.geocities.jp/meir000/fontforge/ से डाउनलोड कर सकते हैं ) Latha.ttf को एडिट करने के लिए और इसे एक मोनोपॉज़्ड फॉन्ट के रूप में चिह्नित करें। इस तरह करना:

  1. फॉन्टफोर्ज लोड करें, latha.ttf चुनें।
  2. मेनू: तत्व -> फ़ॉन्ट जानकारी
  3. फ़ॉन्ट जानकारी संवाद पर बाईं ओर की सूची से "OS / 2" चुनें
  4. "पैनोज" टैब चुनें
  5. अनुपात निर्धारित करें
  6. इस फ़ॉन्ट का नया TTF संस्करण सहेजें, इसे आज़माएँ!

सौभाग्य!


1
मैं अक्षांश फ़ॉन्ट को मोनोस्पेस में नहीं बदल सका। मैंने आपके कदमों का ठीक-ठीक पालन किया, लेकिन सहेजी गई फ़ाइल अभी भी मोनोपॉज फ़ॉन्ट के रूप में काम नहीं करती है :(
सतीश मनोहर

1
@ सतीश मनोहर 1) विद्यमान टीटीएफ फ़ाइल को अधिलेखित करें, अपने विंडोज को पुनरारंभ करें, और इसे आज़माएं। या 2) आप टीटीएफ को एक नई फ़ाइल में सहेज सकते हैं और फ़ॉन्ट नाम को संशोधित कर सकते हैं। नई TTF फ़ाइल स्थापित करें। यह नया फ़ॉन्ट आपकी सूची में उपलब्ध होना चाहिए।
यी झाओ

उन सभी वर्षों (7 साल) के बाद, वीआईएम के लिए कई मुफ्त फोंट उपलब्ध हैं। Google Noto फोंट google.com/get/noto ; और Iosveka github.com/be5invis/Iosevka/releases मूल्यांकन करने के लिए बहुत अच्छे विकल्प हैं।
यी झाओ

3

लिनक्स में, VIM कॉन्फ़िगरेशन फ़ाइल खोलें

$ sudo -H gedit /etc/vim/vimrc

निम्नलिखित पंक्तियों को जोड़ा गया:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

सहेजें और बाहर निकलें, और टर्मिनल कमांड:

$ source /etc/vim/vimrc

इस समय VIM चीनी को सही ढंग से प्रदर्शित करेगा।


2

क्या यह समस्या इस बीच हल हो गई है?

मुझे यह समस्या थी कि gvim ने सभी यूनिकोड वर्णों को प्रदर्शित नहीं किया (लेकिन केवल एक सबसेट, umlauts और उच्चारण वर्णों सहित), जबकि :set guifont?खाली था; मेरा सवाल देखिए । यहां पढ़ने के बाद, सेटिंग करनाguifont एक समझदार मूल्य की इसे मेरे लिए तय किया। हालाँकि, मुझे 2 बाइट्स से परे वर्णों की आवश्यकता नहीं है।


1
Guifont के लिए एक समझदार मूल्य क्या है? आपने क्या डाला?
क्रिश्चियन

मैंने इस उत्तर में मेरे लिए काम करने वाले मूल्यों को सूचीबद्ध किया ।
टोबियास

2

मुझे अपने विंडोज GVim एडिटर में दिखाने के लिए कोई अन्य फोंट नहीं मिला है, इसलिए मैंने अभी स्विच किया है Lucida Consoleजिसमें कम से कम कुछ बेहतर यूटीएफ -8 सपोर्ट है। इसे अपने अंत में जोड़ें _vimrc:

" For making everything utf-8
set enc=utf-8
set guifont=Lucida_Console:h9:cANSI
set guifontwide=Lucida_Console:h12

अब मुझे कम से कम कुछ UTF-8 अक्षर दिखाई देते हैं।


मेरे मामले में cANRE को cGREEK (Edit -> Select Font ... GVim में) में बदलना पड़ा, Consolas फ़ॉन्ट के साथ, UTF-8 एन्कोडेड टेक्स्ट फाइल को ग्रीक वर्णों के साथ सही ढंग से प्रदर्शित करने के लिए
hello_earts

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