विम में अजीब चरित्रों का क्या कारण हो सकता है?


13

मुझे NERD ट्री प्लगइन का उपयोग करके विम में यह वास्तव में अजीब समस्या है, जहां, जैसा कि आप चित्र में देख सकते हैं, वर्ण बहुत अजीब दिखा रहे हैं। जहाँ आहट है, ~ V 3/4 यह होना चाहिए | - | मैंने अपने LANG को en_US और LC_ALL को en_US (आर्क लाइन में) में सेट किया है, और अनाम प्रो फ़ॉन्ट का उपयोग कर रहा हूं, हालांकि फ़ॉन्ट स्विच करने से कोई फर्क नहीं पड़ता।

असली अजीब है


यह एक चारसेट समस्या की तरह दिखता है। आपका प्लगइन UTF-8 चारसेट का उपयोग कर रहा है, जबकि आपका gvim शायद latin1 की उम्मीद कर रहा है। मुझे खेद है कि मेरे पास इस समय अधिक संपूर्ण समाधान नहीं है। आप " :set fenc=utf-8" निष्पादित करने का प्रयास कर सकते हैं , लेकिन यह वास्तव में दीर्घकालिक समाधान नहीं है।
गैरीजॉन

1
यह वास्तव में एक चरित्र एन्कोडिंग समस्या जैसा दिखता है। मेरा अनुमान है कि डेटा में ├ (BOX DRAWINGS LIGHT VERTICAL AND RIGHT, U + 251C) है, जो UTF-8 में 0xE2 0x94 0x9C है। ISO-8859-1 के रूप में व्याख्या की गई, पहली बाइट एक है, अन्य नियंत्रण कोड हैं। बाकी अस्पष्ट है, लेकिन यूटीएफ -8 को डेटा की व्याख्या के लिए समस्या को कुछ प्रकाश फेंकना चाहिए।
जुक्का के। कोर्पेला

ओके हां बॉक्स ड्राइंग समझ में आता है, मैंने हमेशा सोचा कि यह सिर्फ एक बार और डैश था। अनाम प्रो में बॉक्स ड्राइंग वर्ण हैं।
टैनर

@ वोम्समैन मुझे यकीन नहीं है कि आपने शीर्षक के बारे में क्या बदल दिया है। आपका संपादन कहता है कि आपने शीर्षक संपादित किया, लेकिन कुछ भी नहीं बदला गया था।
टान्नर

@ टैनर: मैंने "क्या कारण हो सकता है" और एक प्रश्न चिह्न जोड़ा है।
तमारा विज्समन

जवाबों:


16

इस धागे पर स्क्रोलोलोज से एक लाइनर ने इसे तय किया:

let g:NERDTreeDirArrows=0

अपने में डालने की कोशिश करो .vimrc

(यह भी देखें: स्टैक ओवरफ्लो पर यहां एक ही उत्तर पोस्ट किया गया )


क्या फल? समस्या सुलझ गयी।
इरविन रूइजाक्कर्स

6

मैंने समस्या हल कर दी है। मैंने इसे हल करने के लिए क्या किया:

  • /etc/locale.genके LC_ALL="en_US.UTF-8"बजाय संपादित किया गयाLC_ALL="en_US"
  • locale-genजड़ के रूप में भाग गया
  • भागा locale -a, यह दिखाया en_US.UTF-8; हालांकि, तब भी localeदिखाया LC_ALLजा en_USरहा था, तब मुझे याद आया कि मैंने LC_ALLअपनी .bashrcपिछली रात में इसे ठीक करने की कोशिश में निर्यात किया था , इसलिए मैंने अपने LANGऔर LC_ALLको बदल दियाen_US.UTF-8
  • टर्मिनल को फिर से चलाया gvim, सफलता मिली! हालांकि यह अजीब है, यह बॉक्स वाले के बजाय अब त्रिकोण तीर वर्णों का उपयोग कर रहा है। मुझे लगता है कि यह ISO-8859 के लिए बॉक्स वाले का उपयोग करता है और संभवतया UTF-8 के लिए त्रिकोण का उपयोग करता है, जिससे मुझे संदेह होता है कि मुझे किसी अन्य कार्यक्रम में सड़क के नीचे समस्याएं हो सकती हैं। जब यह आएगा तब मैं इसे ठीक कर दूंगा।

1
यह मेरे लिए इसे ठीक करने के लिए पर्याप्त नहीं था; मुझे भी mult_byte के साथ vim को recompile करना पड़ा। अब ठीक काम करता है।
chris.ritsen

मैं यह देखने के लिए जाँच करूंगा कि क्या मेरे संस्करण को आज रात मल्टी_बीट के साथ संकलित किया गया है।
टेनर

LC_ALL="en_US.UTF-8मेरे लिए पर्याप्त था
जैकब एम।

3

शायद यह हैक के लायक नहीं है, लेकिन ऐसा लगता है कि यह मेरे लिए काम कर रहा है।

मैंने लाइन बदल दी NERDTree.vim:

call s:initVariable("g:NERDTreeDirArrows", s:running_windows) 

(यह !s:running_windowsपहले था )

अब मुझे कोई फैंसी +प्रतीक नहीं दिख रहा है , लेकिन कम से कम जंपिंग निर्देशिका vim के भीतर से काम करती है। मैं सोलारिस पर हूं और मुझे नहीं लगता कि मेरी जड़ें हैं।


1

मेरा परिवर्तन बूलियन निगेटिव (चरित्र!) को दूर करना था। यहाँ एक अंतर है:

~ / .vim / plugged / nerdtree / प्लगइन] $ git diff NERD_tree.vim
diff --it / a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
सूचकांक bbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ बी / प्लगइन / NERD_tree.vim
@@ -66,7 +66,7 @@ कॉल s: initVariable ("g: NERDTreeShowHidden", 0)
 कॉल s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 कॉल s: initVariable ("g: NERDTreeSortDirs", 1)

-if! nddtree # रनिंग विंडोज ()
+ अगर nddtree # रनिंग विंडोज ()
     कॉल s: initVariable ("g: NERDTreeDirArrowExpandable", "--junk1-here--")
     कॉल s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 अन्य

1

.Vimrc (vim config) में अगले 2 चर में स्पष्ट रूप से मान जोड़ना, मेरे लिए समस्या का हल:

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

ये डिफ़ॉल्ट मान होने चाहिए लेकिन किसी कारण से वे ubuntu / vim पर मेरे लिए सेट नहीं किए गए थे।


1

यदि आपका vimrc बदल रहा है guicursor, तो उस लाइन को हटाने का प्रयास करें। अन्य चर जो इनका कारण / निवारण करते प्रतीत होते हैं:

set guicursor=vimrc
set t_Co=में vimrc
export TERM=xterm-256colorशेल में


1

मेरे मामले में मुद्दा स्थानीय मुद्दे से संबंधित था। समाधान:

  1. मूल्य ते करना:

    निर्यात LC_ALL = "en_US.UTF-8"

  2. भागो विम:

    शक्ति

यहाँ स्थानीय मुद्दे के लिए विवरण देखें:

डिफ़ॉल्ट लोकेल में LC_CTYPE सेट नहीं कर सकते: ऐसी कोई फ़ाइल या निर्देशिका नहीं

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