क्या रंग के साथ बिल्ली का उत्पादन करने के लिए कोई विकल्प हैं?


19

यदि मैं वाक्य रचना हाइलाइटिंग के साथ एक सी स्रोत कोड फ़ाइल को आउटपुट करना चाहता हूं, तो क्या मैं उपयोग कर सकता हूं cat?


आप केवल bat ostechnix.com/ ...
Ridderhoff

जवाबों:


18

एक GNU पैकेज, सोर्स-हाइलाइट , ट्रिक लगता है (हालांकि बिल्ली का उपयोग नहीं कर रहा है - जैसा कि जॉन टी बताते हैं, यह विशेष रूप से संभव नहीं है)। यह उबंटू पर apt-get के माध्यम से उपलब्ध है, और Boost regex लाइब्रेरी की आवश्यकता है। अपने पैकेज मैनेजर को देखें कि दोनों उपलब्ध हैं या नहीं, अन्यथा आप उन्हें वेब से हड़प सकते हैं। पहले से जुड़े GNU पेज में बूस्ट का लिंक है, मुझे लगता है।

स्थापना के बाद, मैंने अपने पथ में एक नई स्क्रिप्ट बनाई, जिसे ccat कहा जाता है । स्क्रिप्ट इस प्रकार है:

#!/bin/bash
src-hilite-lesspipe.sh $1

कुछ भी नहीं फैंसी, बस कम स्क्रिप्ट को सरल बनाने में वे स्रोत-हाइलाइट के साथ शामिल हैं। यह बिल्ली की तरह ही काम करता है जब इस फैशन में कहा जाता है।

शामिल कम स्क्रिप्ट एक अच्छी स्क्रिप्ट है, साथ ही साथ उपयोग करने के लिए भी। मैंने अभी निम्नलिखित .bashrc में जोड़ा है :

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

वह स्क्रिप्ट स्रोत-हाइलाइट के लिए ऑनलाइन मैनुअल में भी शामिल है।

मुझे लगता है कि अगर आप बिल्ली को पूरी तरह से अनदेखा करने की तरह महसूस करते हैं, तो आप उर्फ ​​बिल्ली को src-hilite-lesspipe.sh $ 1 कह सकते हैं, लेकिन यह वांछनीय नहीं हो सकता है।


4
मैं, व्यक्तिगत रूप से, एक-पंक्ति बैश स्क्रिप्ट के साथ एक उपनाम को प्राथमिकता देता हूं $1:)।
मंगल

हां, मिच_फिएस्टर, आप हाजिर हैं। :]
rgm

2
एक मैक पर भी साथ काम करता है brew install source-highlight। यम को रंग देने में असमर्थ :(
साईराम

9

कुछ के साथ वाक्य रचना हाइलाइट किए गए कोड को आउटपुट करने के लिए cat, मैंने http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/ccat पर दिए गए निर्देशों का पालन करके एक कमांड बनाई ।

#!/bin/bash
if [ ! -t 0 ];then
  file=/dev/stdin
elif [ -f $1 ];then
  file=$1
else
  echo "Usage: $0 code.c"
  echo "or e.g. head code.c|$0"
  exit 1
fi
pygmentize -f terminal -g $file

कुछ के साथ वाक्य रचना हाइलाइट किए गए कोड को आउटपुट करने के लिए less, मैं कम प्रतिस्थापन के रूप में विम का उपयोग करता हूं।

alias less='/usr/share/vim/vim72/macros/less.sh'

Pygmentize कैसे स्थापित करें: easy_install --install-dir $ SOMEDIR Pyलों
psihodelia

मुझे इस प्रकार के पोर्टेबल समाधान पसंद हैं। मैंने इस पटकथा को एक समारोह के रूप में अपने बैश के .functionsरूप में colorize(){...}
जोड़ा

3

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

function hl { # Overrides the cat command to use syntax highlighting
    # Highlight with 'moria' theme to terminal, and suppress errors
    highlight $1 -s moria -O xterm256 2> /dev/null

    if (($? != 0)); then # If the command had errors
        cat $1 # Just cat the file out instead
    fi
}

यदि आप मैक पर हैं और आप होमब्रे (अत्यधिक अनुशंसित!) का उपयोग करते हैं, तो आप रनिंग करके हाइलाइट स्थापित कर सकते हैं brew install highlight। अन्यथा, यह अधिकांश अन्य पैकेज प्रबंधकों पर उपलब्ध होना चाहिए और यहां डाउनलोड किया जा सकता है

मैंने HTML के रूप में हाइलाइटिंग सिंटैक्स वाली फ़ाइल को प्रिंट करने के लिए एक फ़ंक्शन बनाया और इसे प्रिंट करने के लिए ब्राउज़र में खोलें ( openओएस एक्स पर कमांड पर निर्भर करता है ):

function hlprint {
    # Print with line numbers and 'moria' theme
    highlight $1 -l -o print.html -s moria
    open print.html # Open in browser
    sleep 5 # Give the browser time to open
    rm print.html highlight.css # Remove output files
}

का आनंद लें!


1

नहीं, बिल्ली में कोई सिंटैक्स हाइलाइटिंग क्षमता नहीं है। यदि आप सिंटैक्स हाइलाइटिंग के साथ स्रोत कोड देखना चाहते हैं, तो इसे विम या अपनी पसंद के संपादक (जिसमें सिंटैक्स हाइलाइटिंग है) में पॉप करें। इस तरह, आप आउटपुट के माध्यम से भी पेज बना सकते हैं यदि यह Ctrl+ F(आगे) और Ctrl+ B(पीछे की ओर) का उपयोग कर एक लंबी फ़ाइल है ।

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