2011-04-21 7 views
10

मैं ने कहा कि 'showbreak' प्रतीक प्रकाश डाला "NonText" रंग-तत्व के साथ हाइलाइट किया गया है का उपयोग किए बिना Showbreak हाइलाइट रंग बदलने के लिए। गैर पाठ का उपयोग ईओएल अक्षरों के लिए भी किया जाता है।
मैं ईओएल अक्षरों के लिए हाइलाइट-रंग रखना चाहता हूं लेकिन शोबैक प्रतीक के लिए इसे बदलना चाहता हूं, क्या यह संभव है?विम: कैसे NonText रंग-तत्व

एक और समस्या यह है कि मेरा शोबैक प्रतीक प्रदर्शित नहीं होता है। मैं इस प्रतीक का उपयोग करना चाहता हूं "↳" और इसे linenumbers कॉलम में सेट करें (सेट cpoptions + = n का उपयोग कर)। मैं प्रतीक को प्रदर्शित करने के तरीके और शोबैक प्रतीक (पाठ और प्रतीक के बीच) के बाद एक जगह कैसे डालना है, यह नहीं पता।

क्या कोई मेरी मदद कर सकता है?

+0

ही यहां मुद्दा यह है, भले ही यह एक पुराने सवाल है। मेरे लिए, यह कष्टप्रद है कि 'showbreak' लाइन नंबर के रूप में एक ही रंग नहीं है जब' का उपयोग कर cpoptions + = n': http://ell.io/k5A7 – ELLIOTTCABLE

उत्तर

6

मुझे नहीं लगता कि आप EOL चरित्र से अलग हो पर प्रकाश डाला पाने के लिए जा रहे हैं, कम से कम मुझे लगता है कि ऐसा करने के लिए एक तरह से के बारे में पता नहीं कर रहा हूँ है।

दूसरे भाग के लिए मैं सहायता कर सकता हूं। मैं निम्नलिखित सेटिंग्स के साथ मेरी लाइन नंबर कॉलम में दिखाने के लिए प्राप्त करने में सक्षम "↳" था: बाद में एक रिक्ति है

let &showbreak = '↳ ' 
set wrap 
set cpo=n 

ध्यान दें कि वहाँ। यह लाइन तब तक बढ़िया है जब तक आपके पास फ़ाइल में 9 लाइनें न हों। यदि आप लाइन नंबरों की परवाह किए बिना संख्या कॉलम के अंतिम चरित्र के साथ लाइन करना चाहते हैं तो मुझे यकीन नहीं है कि आपको क्या करना है।

संपादित करें: मैंने हाल ही में आईआरसी पर किसी के लिए proof-of-concept function लिखा है जो एक अलग हाइलाइट समूह के साथ लिपटे लाइन पर पहले वर्ण को हाइलाइट करता है। इसका परीक्षण नहीं किया गया है लेकिन ऐसा लगता है कि यह काम करता है। बिल्कुल वही नहीं जो आप खोज रहे हैं लेकिन शायद यह एक लायक है।

+0

आप रैंडी धन्यवाद। जब मैं कमांडलाइन में पहली पंक्ति डालता हूं तो मुझे यह दिखाई देता है: 'show showbreak =? \ ' – Reman

+0

क्या आप विम में अन्य मल्टीबाइट वर्ण इनपुट कर सकते हैं? क्या 'vim --version' के आउटपुट में "+ multi_byte" है? –

+0

मेरे पास केवल इन विशेषताओं में शामिल हैं: + multi_byte_ime/dyn + multi_lang। मेरा एन्कोडिंग लैटिन 1 है। जब मैं इसे utf-8 में बदलता हूं तो मैं शोबैक प्रतीक से ऊपर डाल सकता हूं, लेकिन मैं utf-8 में प्रिंट नहीं कर सकता। यूटीएफ -8 कई (यूरोपीय) भाषाओं में बहुत सी समस्याएं देता है। क्या आपको पता है कि utf-8 में एन्कोडिंग को बदले बिना + बहु-बाइट को vim जोड़ने का कोई और तरीका है? – Reman

5

:help hl-NonText बनाता है यह बहुत स्पष्ट है कि आप 'showbreak' स्ट्रिंग और अन्य गैर पाठ स्ट्रिंग्स, जिनमें से eol एक सदस्य है के लिए अलग अलग रंग नहीं हो सकता (:help 'listchars' देखें):

NonText

'~ 'और' @ 'विंडो के अंत में,' शोबैक 'और अन्य वर्ण जो वर्ण में वास्तव में मौजूद नहीं हैं (उदाहरण के लिए, ">" प्रदर्शित होते हैं जब डबल-वाइड वर्ण अंत में फिट नहीं होता है लाइन)।

आप इस सीमा (@elliottcable) hi! link NonText LineNr लाइन नंबर रंग के 'showbreak' स्ट्रिंग से मेल खाएगी स्वीकार करने को तैयार कर रहे हैं।

तुम सच में चालाक पाने के लिए, एक समझौता के रूप में आप एक मानचित्रण बना सकते हैं या चालू करने के लिए ':set list' और ':set nolist' के बीच वह भी NonTexthighlight एक साथ की स्थापना को समायोजित करेगा कमान सकता है चाहता है तो।

आप :set relativenumber (vim 7.3 में जोड़ा) का उपयोग करते हैं, :set showbreak=↳\ \ \ मज़बूती से रखेंगे अपने 'showbreak' बड़े करीने से नंबर चौड़ाई के बाद से खड़े के रूप में आप फ़ाइल माध्यम से नेविगेट नहीं बदलेगा। (यह :set cpo+=n और :set wrap @Randy मॉरिस के अलावा उसके जवाब में उल्लेख किया है।)

आप निश्चित रूप से, चरित्र के लिए UTF-8 की आवश्यकता होगी, क्योंकि यह अन्य एन्कोडिंग में प्रकट नहीं होता।मैं दृढ़ता से आपको अपने एन्कोडिंग समस्याओं को सावधानी से दस्तावेज करने की सलाह देता हूं, जिसमें उनके ओएस, इसके संस्करण, और :version विम के आउटपुट के साथ उन्हें पुन: उत्पन्न करने के बारे में विवरण दिया गया है, और उन्हें अलग प्रश्नों के रूप में पोस्ट करें। यूटीएफ -8 की मदद करनी चाहिए, आप एक बाधा होने के बजाय कई भाषाओं को झुकाएं।

+0

(एक पार्टी के देर से) मुझे आश्चर्य है कि 'शो' के लिए यूनिकोड वर्णों का उपयोग करना संभव है जैसे कि \ nuf443' नेरड फोंट से। तो हाँ, क्या यह भी संभव है? – ddnomad