क्या वीआईएम टर्मिनल कलर एस्केप कोड्स की व्याख्या कर सकता है?


29

कई CLI प्रोग्राम अच्छी तरह से हाइलाइट किए गए टेक्स्ट को आउटपुट करते हैं। हालांकि उनमें से अधिकांश यह जांचते हैं कि आउटपुट फ़ाइल में जा रहा है या नहीं, कुछ में टर्मिनल एस्केप कोड शामिल हैं। मुझे एस्केप कोड के साथ आउटपुट पसंद है, लेकिन विम में इन फाइलों को देखना दर्दनाक है।

क्या विम इन एस्केप कोड्स की अपेक्षित रंगों में व्याख्या कर सकता है? यदि नहीं, तो Vim को इन एस्केप कोड्स को अनदेखा करने के लिए सेट किया जा सकता है?

जवाबों:


28

विभिन्न प्लगइन्स हैं जो आपको एस्केप कोड के माध्यम से ANSI रंग देखने की अनुमति देते हैं:


यदि आप सभी एस्केप कोड हटाना चाहते हैं, तो आप उपयोग कर सकते हैं:

:%s/<1b>\[[0-9;]*m//g

नोट: <1b>है नहीं शाब्दिक पाठ, यह एस्केप वर्ण, इस्तेमाल होता है Ctrl+ vके बाद Esc(यह भी रूप में नज़र आ सकते हैं डालने के लिए ^[, अपने पर निर्भर करता है displayसेटिंग)।

या आप उन्हें हटा सकते हैं sed; उदाहरण के लिए:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

यदि आपके पास पर्याप्त आधुनिक विम है जिसमें + टर्मिनल सुविधा है, तो आप कर सकते हैं :term cat somefileऔर आपको व्याख्या किए गए सभी टर्मिनल कोड के साथ एक बफर मिलेगा।

यह उदाहरण के लिए Colorizer की तुलना में बड़ी फ़ाइलों पर बेहतर काम कर सकता है, जिसने 6000 मीटर की फ़ाइल पर इसे ढीला करने पर मेरी विम को असामान्य रूप से धीमा कर दिया।

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