मेक इन सब्लिम टेक्स्ट 3 से रंगीन बिल्ड आउटपुट कैसे प्राप्त करें?


19

आप ST3 बिल्ड आउटपुट विंडो में रंग कैसे प्राप्त कर सकते हैं?

मैं अपनी बिल्ड आउटपुट को रंगीन करने के लिए gccfilter का उपयोग कर रहा हूं, लेकिन ST3 सिर्फ कच्चे बच के दृश्यों को प्रदर्शित करता है। क्या उन्हें संसाधित करने के लिए इसे प्राप्त करने का कोई तरीका है? या gccfilter को हटाने के लिए और आउटपुट को रंगने के लिए बस ST3 प्राप्त करें (उदाहरण के लिए चेतावनी और त्रुटि ठीक होगी)?

जवाबों:


16

ST3 के मेकफाइल बिल्ड सिस्टम के हाल के संस्करणों (जैसा कि Make.sublime-build फ़ाइल में वर्णित है ) में पहले से ही एक वाक्यविन्यास परिभाषा है जो रंगीन आउटपुट का उत्पादन करती है।

यदि आप इससे खुश नहीं हैं, तो यहां आप एक वैकल्पिक और आम तौर पर काम करने वाले दृष्टिकोण के रूप में क्या कर सकते हैं यदि आपके पास एक बिल्ड सिस्टम है जो टर्मिनल में एएनएसआई रंग का उत्पादन करता है और आप उन्हें सबलाइम टेक्स्ट 3 के निर्माण आउटपुट पैनल में दिखाना चाहते हैं ।

यह है कि मैंने RSpec के लिए अपने सबलेम टेक्स्ट 3 इंस्टॉलेशन में इसे कैसे किया, लेकिन मुझे लगता है कि यह किसी भी मामले में पूरी तरह से लागू होता है जिसमें एक नियमित कंसोल / TTY में रंग का उत्पादन होता है:

1. अपनी निर्माण प्रणाली को आउटपुट रंगों पर बल दें, भले ही वह TTY पर आउटपुट न कर रहा हो।

यह बिल्ड सिस्टम पर निर्भर करता है। उदाहरण के लिए, रूबी और आरएसपीईसी के लिए, आप .rspecनिम्नलिखित प्रोजेक्ट के साथ अपने प्रोजेक्ट में एक फ़ाइल बना सकते हैं:

--color --tty

आपके मामले में, आपके पास पहले से ही एक निर्माण प्रणाली है जो एएनएसआई रंग से बचने के दृश्यों के साथ आउटपुट का उत्पादन करती है।

2. ANSIescape (SublimeANSI) पैकेज स्थापित करें

यह पैकेज नियंत्रण के माध्यम से इसे स्थापित करने के लिए अनुशंसित है। स्थापना और कॉन्फ़िगरेशन निर्देशों के लिए पैकेज का रेपो देखें।

3. उदात्त पाठ में एक नई बिल्ड सिस्टम परिभाषा बनाएं और एएनएसआई रंगों को पहचानने के लिए इसे कॉन्फ़िगर करें

उदाहरण के लिए, यहां मेरी Colorized RSpec.sublime-buildबिल्ड सिस्टम की सामग्री है:

{
    "cmd": ["rspec", "-I ${file_path}", "$file"],
    "file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
    "working_dir": "${project_path:${folder:${file_path}}}",
    "selector": "source.ruby.rspec",
    // Recognize ANSI colors in the output
    "target": "ansi_color_build",
    "syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}

अंतिम दो कॉन्फ़िगरेशन विकल्प SublimeANSI के रीडमे से लिए गए हैं । आप मेक के लिए इसे अपने बिल्ड सिस्टम पर लागू कर सकते हैं। आप इसे Make.sublime-buildSublime Text 3 के पैकेज से फ़ाइल के वर्तमान संस्करण पर आधारित कर सकते हैं।

4. नई बनाई गई बिल्ड सिस्टम का उपयोग करके अपनी फ़ाइल / प्रोजेक्ट बनाएँ।

नए बिल्ड सिस्टम को चुनने के लिए "बिल्ड विद ..." मेनू का उपयोग करें। OS X पर यह है Cmd + Shift + B। बाद में बनाए Cmd + Bगए इस अंतिम निर्मित बिल्ड सिस्टम का उपयोग करेगा।

यहाँ है कि यह कैसा दिखता है:

यहां छवि विवरण दर्ज करें


1
दुर्भाग्य से, ANSIIEस्केप को ANSI एस्केप कोड पार्स करने में कुछ सीमा है, इसलिए सभी आउटपुट को फायदा नहीं होगा। यहाँ मुझे कुछ सीमाएँ मिली हैं: * बैकग्राउंड को इंटरप्ट न करने के बाद बैकग्राउंड सेट करना। * दो अंकों का उपयोग करना (जैसे <ESC> [01m) को corectly पार्स नहीं किया जाता है * कुछ कोड्स का उपयोग लाइन को साफ करने के लिए किया जाता है (विशेष रूप से: <ESC> [K) को पार्स नहीं किया जाता है। यह इस विधि को पूरी तरह से उपयुक्त नहीं बनाता है - उदाहरण के लिए - जीसीसी
एमिलियो गारवगलिया

5

वर्तमान में ST3 कंसोल पार्स कलर्स बनाने का कोई तरीका नहीं है जो मुझे मिला है। इस पर लेखक से चर्चा करनी होगी। मैंने पहले देखा है कि कंसोल में हमेशा मोनोक्रोमैटिक आउटपुट होता है। ST3 वर्तमान में केवल उन रंगों का उपयोग करता है जो उस थीम के साथ प्रदान किए जाते हैं जिसे आपने इसे लागू किया है।

भागने के क्रम से छुटकारा पाने का एकमात्र तरीका यह होगा कि आउटपुट हिट करने से पहले उन्हें फ़िल्टर किया जाए।


1
हे, मैं आसानी से उन्हें सिर्फ gccfilter का उपयोग न करके फ़िल्टर कर सकता था .. मैं सिर्फ रंग चाहता हूँ !!
येरज

हाँ, काश ऐसा संभव होता। शायद इसे लेखक तक पहुँचाने से काम हो जाएगा।
धूर्त
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.