2013-02-25 56 views
9

विम की छुपा सुविधा set cole=2 का उपयोग करते समय, vim cchar में जो भी कॉन्फ़िगर किया गया है, उसके लिए उपयुक्त टेक्स्ट छुपाएं, और Conceal समूह का उपयोग करके इसे हाइलाइट करें।विम कॉन्सेल हाइलाइट

मेरे समस्या यह है कि मैं सी में छिपाना सुविधा का उपयोग/C++ संचालन &&|| की तरह, आदि यूनिकोड के लिए ⋀ को बदलने के लिए ⋁ आदि, और मैं भी html में concel का उपयोग की तरह पाठ संस्थाओं को बदलने के लिए है "& ccedil," "ç" के लिए।

तो मैं में ~/.vim/है के बाद/वाक्य रचना/c.vim

hi clear Conceal 

और में ~/.vim/के बाद/वाक्य रचना/html.vim

hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue 

समस्या यह है कि यह सेटिंग्स वैश्विक हैं। अगर मैं एक सी फाइल खोलता हूं, और फिर मैं एक एचटीएमएल फाइल खोलता हूं, जब मैं सी फाइल पर वापस आ जाता हूं तो अंतिम बफर के अनुसार कॉन्सेल ग्रुप को हाइलाइट किया जाता है।

मेरा प्रश्न है: क्या मैं कॉन्सेल समूह को कॉन्सेल से अलग कुछ करने के लिए सेट कर सकता हूं? यदि नहीं, तो मैं वर्तमान बफर (और वैश्विक रूप से नहीं) के लिए विशिष्ट हाइलाइट कैसे बना सकता हूं?

उत्तर

7

आप नहीं कर सकते। ठीक है, आप वर्तमान बफर के आधार पर Conceal समूह की हाइलाइटिंग टॉगल करने के लिए :autocmds सेट अप कर सकते हैं, लेकिन यह अभी भी अन्य प्रकार के गैर सक्रिय दृश्य बफर के लिए बंद होगा। आम तौर पर, हाइलाइट समूह वैश्विक होते हैं, और यह बदलने की संभावना नहीं है।

अपनी दुविधा को हल करने के लिए, मैं Conceal के लिए एक हाइलाइटिंग चुनूंगा जो आपके सी/सी ++ उपयोग के लिए पर्याप्त रूप से पर्याप्त नहीं है, फिर भी प्रतिस्थापित HTML इकाइयों को दिखाने के लिए दृश्यमान रूप से अलग है। मेरे लिए, पूरी तरह से Conceal हाइलाइटिंग को साफ़ करना एक इच्छित उपयोग नहीं है; इसे हमेशा एक अनुस्मारक के रूप में कार्य करना चाहिए जो आप देखते हैं वास्तव में पाठ में वास्तव में क्या है।

+0

ओह, ठीक है, बहुत बुरा है। वैसे भी धन्यवाद। – Akobold