रंगों में कोड मार्कअप का उपयोग करके 'बिल्ली' फाइलें दिखा सकती हैं?


45

कभी-कभी मैं जल्दी से कमांड लाइन से एक फ़ाइल की सामग्री को देखना चाहता हूं। इसके लिए मैं निश्चित रूप से उपयोग करता हूं cat, लेकिन यह अक्सर पायथन , जावा या सरल HTML में स्रोत फाइलें हैं । इन फ़ाइलों के लिए यह आसान होगा यदि वे फ़ाइलों catको कुछ रंग मार्कअप दे सकें, ताकि यह अधिक आसान पढ़ें।

क्या catऐसा हो सकता है?


इसका पहले से ही यहाँ
विल्फ

ha @wilf मुझे google के साथ एक ही कोड मिला: D भी SO पर इस विषय पर ध्यान देने योग्य है: superuser.com/questions/84426/…
Rinzwind

@ रिनविंड - मैंने स्टैकओवरफ़्लो की खोज की, क्योंकि यह ऊपर आने के लिए बाध्य था ;-)
विल्फ

जवाबों:


48

catऐसा करने में सक्षम नहीं है। हालाँकि, हो सकता है कि पाइनेस आपकी मदद कर सके। यह एक पायथन लिपि है और इसे या तो एप्ट-गेट के माध्यम से स्थापित किया जा सकता है

sudo apt-get install python-pygments

या आसानी से डाउनलोड किया और easy_install के माध्यम से स्थापित किया।

यह बहुत सारे स्रोत कोड भाषाओं का समर्थन करता है और भाषाओं को भी चिह्नित करता है

इसके द्वारा प्रयोग किया जाता है

pygmentize -g <filename>

5
के रूप में फ़ाइल खोलें pygmentize -g <filename>, -gस्विच lexer के बिना फ़ाइल को संभालने के लिए महत्वपूर्ण है। उदाहरण के लिए यदि आप इसके /etc/fstabबिना खोलने की कोशिश -gकरेंगे तो यह विफल हो जाएगा।
स्मारिका

धन्यवाद @souravc ने इसे उत्तर में जोड़ा। दिलचस्प बात यह है कि इस तर्क का उल्लेख मैन पेज या हेल्प पेज में नहीं किया गया है
txwikinger

2
वैसे मैंने इसके साथ बहुत खेला। आप इसे पा सकते हैं, कोशिश करें pygmentize --help यदि -gपारित हो गया है, तो फ़ाइल सामग्री से लीकर का अनुमान लगाने का प्रयास करें, या यदि यह विफल हो जाता है (यह स्टड के लिए काम कर सकता है) तो सादे पाठ के रूप में गुजरता है।
स्मारिका

4
यह सबसे अच्छा है, और फिर pyactize -g के लिए उर्फ ​​बिल्ली और आप सुनहरे हैं। मछली में यह सरल है funced cat... type pygmentize -g $argv... save..funcsave cat
एलिय्याह लिन

मेरे bashrcजोड़े में: command -v pygmentize >/dev/null 2>&1 && alias cat='pygmentize -g'
एंटोनियोस हेजिजोर्गालिस

19

catखुद से नहीं, लेकिन आप स्रोत हाइलाइट या सुपरकैट या हाइलाइट जैसे कुछ का उपयोग कर सकते हैं

स्रोत-प्रकाश डाला

यह प्रोग्राम, एक स्रोत फ़ाइल दिया गया है, सिंटैक्स हाइलाइटिंग के साथ एक दस्तावेज़ का उत्पादन करता है। यह C ++ हाइलाइट लाइब्रेरी (नया) (संस्करण 3.0 के बाद से) भी प्रदान करता है।

स्रोत-हाइलाइट स्रोत भाषा विनिर्देशों को गतिशील रूप से पढ़ता है, इस प्रकार नई भाषाओं को संभालने के लिए इसे आसानी से बढ़ाया जा सकता है। यह गतिशील रूप से आउटपुट स्वरूप विनिर्देशों को भी पढ़ता है, और इस प्रकार नए आउटपुट प्रारूपों को संभालने के लिए इसे आसानी से बढ़ाया जा सकता है। इन विशिष्टताओं के लिए वाक्य रचना काफी आसान है (मैनुअल पर एक नज़र डालें)।

स्थापना के बारे में मैनुअल:

विस्तृत भवन और स्थापना निर्देशों के लिए फ़ाइल INSTALL देखें; वैसे भी यदि आप उन लिनक्स सॉफ्टवेयर को संकलित करने के लिए उपयोग किए जाते हैं जो स्रोतों के साथ आते हैं, तो आप बस सामान्य प्रक्रिया का पालन कर सकते हैं, अर्थात, एक निर्देशिका में आपके द्वारा डाउनलोड की गई फ़ाइल को खोलना और फिर:

 cd <source code main directory>
 ./configure
 make
 make install

Supercat

यह सुपरकैट का मुखपृष्ठ है। सुपरकैट एक ऐसा कार्यक्रम है जो नियमित अभिव्यक्ति / तार / वर्णों के मिलान के आधार पर पाठ को रंग देता है। Supercat html आउटपुट के साथ-साथ मानक ASCII टेक्स्ट का समर्थन करता है। कुछ टेक्स्ट-कलराइज़िंग प्रोग्राम जो मौजूद हैं, के विपरीत, Supercat को colorization नियम बनाने के लिए आपको प्रोग्रामर होने की आवश्यकता नहीं है।

यदि आपने एक मानक फ़ाइल प्रकार के लिए एक सुपरकैट कॉन्फ़िगरेशन फ़ाइल लिखी है, तो कृपया मुझे सुपरकैट वितरण में संभव समावेश के लिए "बग-एसपीसी (एट) नोस्रेडना (डॉट) नेट" पर संपर्क करने में संकोच न करें।

या एक समारोह ( स्रोत ) के साथ:

#!/bin/bash#!/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

आवश्यकताएं: पियर्स ( sudo apt-get install python-pygments python3-pygments) इसे एक फ़ंक्शन के रूप में जोड़ने के लिए bash .functions और इसे रंग की तरह एक नाम दें ()


14

इस उत्तर के रूप में यहाँ , आप python-pygmentsसामान को उजागर करने के लिए संकुल का उपयोग कर सकते हैं । पहले करो:

sudo apt-get install python-pygments python3-pygments

फिर:

pygmentize -g FILENAME

फिर एक जाना है:

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

आप इसे एक उपनाम के रूप में भी सेट कर सकते हैं, जैसे कि मैंने जो उत्तर दिया है - मूल रूप से, इसे चलाएं:

echo "alias catc='pygmentize -g'" >> ~/.bash_aliases 
chmod +x ~/.bash_aliases

टर्मिनल को बंद करें, इसे फिर से खोलें, और catcकमांड को अब काम करना चाहिए - यदि ऐसा नहीं होता है, तो सुनिश्चित करें कि ये पंक्तियां .bashrcफ़ाइल में हैं, और यह असंबद्ध है:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

एक और बात सिर्फ उपयोग करना होगा nano:

nano testfile

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


6

man view या man vim

मूल उपयोग: view <filename>

छोड़ें: :q<Return>( <Esc>यदि उपयोग कर रहे हैं तो पहले जोड़ें vim), या ZZ(ऊपरी केस z दो बार)।

प्रोग्रामर के टेक्स्ट एडिटर vimमें आपके पास पहले से ही सभी आवश्यक हैं, और संभवतः पहले से ही आपके सिस्टम का हिस्सा है।

vimसाथ ही सक्रिय केवल पढ़ने के लिए मोड है viewया vim -R। यदि आप सभी करना चाहते हैं तो चिह्नित फ़ाइल को देखें, यह पर्याप्त होना चाहिए।

उपयोग करने के लिए सरल, नौगम्य, हर जगह उपलब्ध है। नए सॉफ़्टवेयर स्थापित करने या बैश स्क्रिप्ट लिखने के बारे में कोई गड़बड़ करने की आवश्यकता नहीं है।


मुझे पता है। बात यह है कि वीआईएम को खोलना और बंद करना त्वरित नहीं है। मैं तुरंत एक फ़ाइल देखना चाहता हूं और फिर कमांड लाइन पर जारी रखना चाहता हूं। यही कारण है कि मैं इस तरह के एक अच्छा pygmentize पाया। त्वरित परिणाम, कोई कार्यक्रम या कुछ भी नहीं
बताते हुए

1
@ kramer65 ठीक है यह आपकी प्राथमिकता है, लेकिन आपको "ओपन" करने की आवश्यकता नहीं है vimया view, आप बस इसे फ़ाइल के साथ प्रदान करते हैं: view file.pyऔर इसलिए इसमें कोई अंतर नहीं है cat। सुनिश्चित करें कि आपको इसे बंद करने की आवश्यकता है, लेकिन वास्तव में, :q<Return>या ZZकठिन कार्य नहीं हैं।
एक अलग बेन

बड़ी समस्या यह है कि vi / vim / view stdout को नहीं लिखते हैं, इसलिए मैं आसानी से ऊपर दिए गए वाक्यविन्यास हाइलाइट किए गए आउटपुट पर glancing के लिए एक कमांड नहीं लिख सकता।
जैक_हु


3

catकेवल हाइलाइटिंग सिंटैक्स का उत्पादन नहीं कर सकता। फिर भी आप इसे निम्नानुसार, उपयोग कर सकते हैं python-pygments। पहले टर्मिनल से इसे स्थापित करें,

sudo apt-get install python-pygments

अब नीचे फंक्शन कॉपी करें ~/.bashrc। यह आपको दे देगा कि आप और क्या चाहते हैं क्योंकि यह गुणों का संरक्षण करेगाcat अन्यथा उपयोग करने का कोई मतलब नहीं हैcat

catc(){
    cat "$@" > /tmp/.tmp
    pygmentize -g /tmp/.tmp
    rm /tmp/.tmp
}

स्रोत के ~/.bashrcरूप में,

. ~/.bashrc

यह कोलोरिज़्ड आउटपुट देगा,

catc <filename>

यह रंग के साथ ही सम्‍मिलित करेगा,

catc <file1> <file2> ... <filen>

क्या pygmentize? मैं ऊपर और नीचे तीर के साथ स्क्रॉल करने में सक्षम करने का एक तरीका है जब मैं इसे फॉर्म की एक कमांड का उपयोग करके खोल रहा हूं और यह पा रहा हूं xterm -e "pygmentize -g <filename>" कि स्क्रॉल करने का एकमात्र तरीका स्क्रॉल बार का उपयोग करना है। मैंने आउटपुट को पाइप करने की कोशिश की, lessलेकिन इसके परिणामस्वरूप कचरा उत्पन्न हो गया।
लियो साइमन

हाँ आप pygmentizeकम के साथ उपयोग कर सकते हैं । lesscनिम्नलिखित के रूप में एक बश फ़ंक्शन बनाएँ :lessc () { pygmentize -gf terminal "$1" | less -R }
souravc

2

चमगादड़ - पंखों के साथ एक बिल्ली का क्लोन

आप यह भी जांचना चाहेंगे batकि निम्नलिखित विशेषताएं कौन सी हैं:

  • वाक्य - विन्यास पर प्रकाश डालना
  • एकीकरण
  • वैकल्पिक रूप से गैर-मुद्रण योग्य वर्ण दिखा रहा है
  • स्वचालित पेजिंग के साथ less
  • catरीडायरेक्ट किए जाने पर ड्रॉप-इन प्रतिस्थापन के रूप में फ़ाइल कॉन्‍टेनेटेशन

 पूर्वावलोकन

एक रंगीन फ़ाइल दिखाते हुए बैट का स्क्रीनशॉट

चित्र आधिकारिक GitHub से लिया गया है

स्थापना

आप यहां नवीनतम डेबियन पैकेज प्राप्त कर सकते हैं और इसके साथ इसे स्थापित कर सकते हैं:

sudo dpkg -i bat_0.10.0_amd64.deb

संस्करण संख्या और वास्तुकला को अपनाना।



0

थर्ड पार्टी पैकेज स्थापित करने के बजाय, आप geditसिंटैक्स हाइलाइटिंग वाली फ़ाइल को जल्दी से देखने के लिए उपयोग कर सकते हैं। उदाहरण के लिए ऊपर दिए गए एड्रेस बार को कॉपी करें और अपने टर्मिनल में पेस्ट करें:

gedit https://askubuntu.com/questions/405960/can-cat-show-files-using-code-markup-in-colors

इस प्रश्न को आप HTML में स्वरूपित रंगों के साथ देखेंगे:

gedit https.png

  • आप परिचित geditनेविगेशन कुंजियों का उपयोग कर सकते हैं
  • आप लाइन रैप को चालू / बंद कर सकते हैं
  • आप प्लगइन्स का उपयोग कर सकते हैं जैसे मैंने थम्बनेल स्लाइडर के साथ 80 कैरेक्टर गटर और डॉक्यूमेंट ओवरव्यू (दूर दाएं) के लिए इंस्टॉल किया है
  • एकमात्र कैविट आपको याद रखने की आवश्यकता है Alt+ F4अनुकरण करने के लिए खिड़की को जल्दी से बंद करने के लिए catजिसे बंद करने के लिए कीस्ट्रोक्स की आवश्यकता नहीं होती है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.