बैश: रंगीन कॉपी / पेस्ट


12

हर किसी के रूप में, मेरे पास मेरे रंग में कुछ रंगीन उत्पादन है। मैं उदाहरण के लिए HTML संपादक में एक अर्क को कॉपी करते समय रंगा हुआ सिंटैक्स रखना चाहता हूं। क्या इसे संभालने का कोई तरीका है?

धन्यवाद।

जवाबों:


17

आप जैसे कुछ कमांड लाइन उपयोगिताओं के रंगीन उत्पादन के बारे में बात कर रहे हैं ls, grep, cmake, git diff, आदि, कृपया ध्यान दें, यह जीएनयू बैश के लिए किसी भी संबंध नहीं है।

वैसे भी, HTML के लिए ANSI एस्केप दृश्यों के साथ रंगीन आउटपुट को परिवर्तित करने के लिए कई उपकरण हैं:

  • aha इसी नाम के पैकेज से
  • ansi2htmlसे एचटीएमएल :: FromANSI पर्ल मॉड्यूल (उबंटू रेपो में पैक नहीं, CPAN से स्थापित किया जा सकता)
  • ansi2html.shपिक्सेलब द्वारा (पैक्ड नहीं, गिट से डाउनलोड)

उन सभी का उपयोग सरल है: वे stdinHTML से टर्मिनल एस्केप अनुक्रम पढ़ते हैं और डालते हैं stdout। लेकिन ध्यान दें: अधिकांश बर्तन आउटपुट को रंगीन नहीं करते हैं यदि यह टर्मिनल पर नहीं जा रहा है। आपको उन्हें स्पष्ट रूप से रंगीन उत्पादन करने का आदेश देना होगा। ई। जी .:

$ ls --color=always | aha | xsel -i -b

xsel -i -b यहां HTML को क्लिपबोर्ड पर कॉपी किया जाएगा।


यह ( aha) खूबसूरती से काम किया; आपका बहुत बहुत धन्यवाद!
श्रीवत्सआर

2
अहा - शानदार! यह मेरे लिए लगभग सही है। फ़ॉर्मेट किए गए पाठ की प्रतिलिपि बनाने में सक्षम होने के लिए, मैंने tmp को रूट करने के लिए अनुकूलित किया, ब्राउज़र में खुला, फिर अन्य साइटों के लिए कॉपी / पेस्ट करें: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... और हाँ मुझे पता है कि ओपी को html चाहिए था, लेकिन हम में से कई लोग यहाँ ठोकर खाएंगे। स्वरूपण आम तौर पर।
ऋषि

-1

आपको इसके लिए जावास्क्रिप्ट पुस्तकालयों का उपयोग करने की आवश्यकता है, आप सीधे कॉपी / पेस्ट नहीं कर सकते हैं और रंगों को वैसे ही रख सकते हैं जैसे वे हैं। इसके लिए कुछ लोकप्रिय पुस्तकालय हैं:

स्रोत: SO पर समान प्रश्न

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