सवाल कम के माध्यम से हाइलाइट सिंटैक्स कैसे करें


क्या कम से कम एक फ़ाइल को हाइलाइट करने के लिए सिंटैक्स का कोई तरीका है?

वास्तव में मैं इस आदेश का उपयोग एक एक्सएमएल फ़ाइल खोलने के लिए कर रहा हूं (और कभी-कभी उनमें से एक श्रृंखला)

less htmleditors/htmleditors_config.xml

या

less [multiple files]

मैं कम में रहना चाहता हूं (उस कार्यक्रम को बेहतर तरीके से सीखने के लिए और मेरे ज्ञान का उपयोग करने के लिए: n और: p अगली / पिछली नेविगेशन के लिए)

लेकिन यह किसी भी प्रकार का मूल वाक्यविन्यास हाइलाइट करना चाहता है - कम से कम टिप्पणियों को अलग-अलग दिखाएं। क्या आप इसे करने का कोई तरीका जानते हैं?


123
2017-11-17 10:20


मूल




जवाब:


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

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

डेबियन स्ट्रेच और फेडोरा 25 के रूप में, पैकेज नाम और स्क्रिप्ट पथ भिन्न होते हैं। डेबियन:

sudo apt install libsource-highlight-common source-highlight
dpkg -L libsource-highlight-common | grep lesspipe
# /usr/share/source-highlight/src-hilite-lesspipe.sh

और फेडोरा:

sudo dnf install source-highlight
rpm -ql source-highlight | grep lesspipe
# /usr/bin/source-highlight/src-hilite-lesspipe.sh

113
2017-11-17 10:35



जब मैं दौड़ता हूं तो मैं निम्न त्रुटि संदेश पुनर्प्राप्त करता हूं less ~/.zshrc। त्रुटि: src-hilite-lesspipe.sh: line 9: source-highlight: command not found। मैं इसे मैकॉक्स पर चलाता हूं। - JJD
@JJD क्या आपने स्रोत-हाइलाइट स्थापित किया था? - Max Nanasy
OSX: brew install source-highlight; export LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s"। पथ परिवर्तन नोट करें। - Gregg Lind
डेबियन पर: sudo apt-get install source-highlight, export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s", export LESS=' -R ' - Morgan Courbet
छोटी चेतावनी: स्रोत-हाइलाइट वर्तमान में मार्कडाउन का समर्थन नहीं करता है। - dhulihan


पिछले उत्तरों में से सर्वश्रेष्ठ: आप दबाकर, सिस्टम डिफ़ॉल्ट संपादक को कम से कम अंदर से बुला सकते हैं v


85
2017-08-24 17:14



वाह! यह आश्चर्यजनक रूप से उपयोगी है! - dancek
मेरे उबंटू बॉक्स पर नैनो खोला शापित! - jamesc
फिर $ EDITOR या $ VISUAL को vim (या emacs, या gedit, या joe, या ed, या mined, या ...) पर सेट करें। - Daniel H
@jamesc FYI, आप नैनो में सिंटैक्स हाइलाइटिंग सक्षम कर सकते हैं, यहाँ मैं दिखाता हूं। - Captain Man
@CaptainMan नहीं, नहीं, नहीं! मैं डैनियल एच ने कहा कि मैं डिफॉल्ट बैक को विम में बदलता हूं! : डी - jamesc


pygmentize somefile.ex | less -R

या

function cless () {
    pygmentize -f terminal "$1" | less -R
}

Pygmentize के एक हिस्से के रूप में आता है पायदान पायथन वाक्यविन्यास हाइलाइटर


31
2017-08-24 18:25



pygmentize साथ भी काम करता है LESSOPEN यहां अन्य उत्तरों में उल्लिखित सामान। - Nathan
लेना pygmentize, आपको पायथन की आवश्यकता है और फिर आप इंस्टॉल कर सकते हैं pygmentize साथ में pip install pygments। - wkschwartz
लेना less उपयोग करने के लिए pygmentize सिंटैक्स हाइलाइटिंग उपयोग के लिए: which pygmentize 2> /dev/null >&2 && export LESSOPEN="| pygmentize -g -f terminal256 %s"। -g इसे पाइप के साथ काम करने के लिए (less <(diff -u file1 files))। यह उपलब्ध है community/pygmentize के लिए पैकेज arch linux, और में python-pygments के लिये debian। - x-yuri
मुझे आउटपुट पसंद है pygmentize, लेकिन यह बहुत धीमी पाया। मेरे द्वारा लाया गया यह जवाब जो तेज और अभी भी 256-रंग सुंदर है। - Tom Hale


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

टेक्स्ट एडिटर (विशेष रूप से vim) का उपयोग करने के कुछ फायदे यहां दिए गए हैं:

  • वाक्य - विन्यास पर प्रकाश डालना
  • शक्तिशाली आंदोलन आदेश
  • खोज
  • एक फ़ाइल में विशिष्ट स्थान पर कूदें (एक चिह्न कहा जाता है)
  • तह (उपयोगी जब आप केवल समारोह स्टब्स देखना चाहते हैं)

रीडोनली मोड में अपनी फ़ाइल खोलने के लिए इसका उपयोग करें:

vim -R <file name>

यहां एक बुनियादी नेविगेशन गाइड है:

j - move down one line
k - move up one line
h - left one char
l -right one char

ctrl-f - forward one page
ctrl-b - back one page

/<something> - search for something
n - next of whatever you searched for
N - next (search backwards) of whatever you searched for

:q - quit
:q! - quit without saving
:w - save

अधिक जानकारी के लिए यहां एक लिंक है:

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

बस रिकैक करने के लिए, यदि आप यूनिक्स विम का उपयोग करेंगे तो यह मौलिक है। मैंने सुना है कि सीखना विम टाइप करना सीखना है। यह प्रोग्रामिंग के लिए सीखने वाला अगला सबसे उपयोगी टूल है।

(बस संपादक युद्धों से बचने के लिए आप इमैक या किसी अन्य संपादक को भी देख सकते हैं, हालांकि मैं व्यक्तिगत रूप से विम पसंद करते हैं)


15
2018-03-01 22:18



मैं इसके समर्थन में हूं। विम जितनी जल्दी हो सके लॉन्च होता है, और कई कीबोर्ड शॉर्टकट (उदा।, खोज, अगला पृष्ठ, पिछला पृष्ठ) समान हैं। - Jeremy W. Sherman
बस कई प्रणालियों पर, एफवाईआई, view के लिए एक उपनाम है vim -R। - Andrew Ferrier


जैसा कि अन्य ने कहा है, आप विम की शक्ति का उपयोग कर सकते हैं। लेकिन महत्वपूर्ण बात यह है कि आप vi / vim का उपयोग करने के तरीके सीखने के बिना ऐसा कर सकते हैं।

विम एक के साथ आता है less.vim स्क्रिप्ट जो पूर्ण रंग सिंटैक्स हाइलाइटिंग के साथ कम के प्रतिस्थापन के रूप में बहुत अच्छी तरह से काम करती है। यह उपयोगकर्ता है less कीबाइंडिंग्स (बस छोड़ने के लिए 'q' दबाएं)।

इसमें कुछ समस्याएं थीं, इसलिए मैंने इसे सुधार लिया। मेरे पास एक स्क्रीनशॉट है http://huyz.us/2011/a-less-like-pager-with-color-syntax-highlighting/


13
2017-07-04 05:35



बहुत बढ़िया! लेकिन जैसा कि मुझे तुरंत स्क्रिप्ट नहीं मिल सका, मैं इसे ढूंढने के लिए कमांड साझा करना चाहता हूं: find /usr/share/vim -name 'less.sh' जो इस गलती से लिया जाता है: gist.github.com/chauncey-garrett/9773770 - yoshi
जल्दी से जोड़ने के लिए @ योशी की टिप्पणी में जोड़ना vimless आदेश (नामकरण के बाद vimdiff), करना: ln -s $(find /usr/share/vim -name 'less.sh') /usr/local/bin/vimless - waldyrious
लिंक 404 है! - acgtyrant


मैं इसके लिए भी खोज कर रहा था और विम का उपयोग करके एक और समाधान मिला: http://ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting-pager/

पोस्ट पुराना है, इसलिए अब हाल ही में डिस्ट्रोज़ पर 7.2 को भेज दिया गया है और .bashrc पढ़ेगा: ऊर्फ vless = 'vim -u /usr/share/vim/vim72/macros/less.vim'


9
2018-02-10 13:43



मैकवीम एक शेल स्क्रिप्ट के साथ आता है जिसका आप सीधे उपयोग कर सकते हैं: /Applications/MacVim.app/Contents/Resources/vim/runtime/macros/less.sh - Nick
यह सुविधा स्वयं Vim में प्रलेखित है :help less - joeytwiddle


मुझे एक नया पैकेज घोषित करने में खुशी है, e2ansi, जो उपलब्ध कराता है सिंटैक्स जैसे पेजर्स के लिए समर्थन हाइलाइटिंग more तथा less

पैकेज सभी पाठ संपादकों की मां का उपयोग करता है, Emacs, सेवा मेरे वास्तविक वाक्यविन्यास हाइलाइटिंग प्रदर्शन करें। एक अतिरिक्त बोनस के रूप में, अन्य सभी सामान्य रूप से Emacs द्वारा किए गए रूपांतरण - जैसे असम्पीडित फ़ाइलें - भी किया जाता है।

उदाहरण

फ़ाइल का उपयोग कर परिणाम देखने का परिणाम निम्नलिखित है less तथा e2ansi:

Example

विन्यास

पैकेज एक कमांड लाइन उपकरण प्रदान करता है e2ansi-cat वह शुरू होता है बैच मोड में Emacs, फ़ाइलें खोलता है, वाक्यविन्यास उन्हें हाइलाइट, और renders परिणाम एएनएसआई अनुक्रमों का उपयोग कर।

आप इसे एकीकृत कर सकते हैं less निम्नलिखित चर सेट करके उदाहरण के लिए, आपकी init फ़ाइल का स्थान भिन्न हो सकता है):

export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"

उपरोक्त विन्यास में, less मूल टर्मिनल को बहाल करता है विंडो सामग्री जबकि more बस के बाद नई सामग्री आउटपुट शीघ्र।

नोट: यदि आप पुराने संस्करण का उपयोग करते हैं less, यह शायद समर्थन नहीं कर सकता है || या - वाक्यविन्यास, इस मामले में आपको बस उपयोग करने की आवश्यकता हो सकती है LESSOPEN=|/usr/local/emacs ...

का उपयोग करते हुए less पाइप में

"-" चरित्र में LESSOPEN इंगित करता है कि इनपुट फ़िल्टर चाहिए पाठ को पाइप करते समय भी इस्तेमाल किया जाए less। इस मामले में, Emacs कर सकते हैं केवल पाठ पर भरोसा करें (और फ़ाइल नाम नहीं)। सौभाग्य से, Emacs इसके लिए एक प्रणाली प्रदान करता है। इसके अलावा, प्रदान की गई फ़ाइल फ़ाइल e2ansi-magic.el अतिरिक्त फ़ाइल प्रकार सेट अप करता है। उदाहरण के लिए:

Pipe example

Emacs का उपयोग क्यों करें?

  • Emacs लगभग सभी प्रोग्रामिंग भाषाओं के लिए समर्थन है और संरचित पाठ प्रारूप। ज्यादातर मामलों में, वाक्यविन्यास हाइलाइटिंग समर्थन उत्कृष्ट है।
  • आप आसानी से अधिक भाषाओं और प्रारूपों के लिए समर्थन जोड़ सकते हैं, या संशोधित कर सकते हैं मौजूदा जरूरतों के अनुरूप मौजूदा पैकेज।
  • Emacs रंग विषयों का समर्थन करते हैं। उपयोग करते समय e2ansi, में रंग फ़ाइल को फ़ाइल देखते समय संरक्षित किया जाता है less। आप एक चुन सकते हैं कई स्रोतों से उपयुक्त रंग थीम, या अपना खुद का डिजाइन करें।
  • यदि आप Emacs को अपने पसंद के संपादक के रूप में उपयोग करते हैं, तो आप वही प्राप्त करेंगे जैसा कि आप फ़ाइल का उपयोग करते समय प्राप्त करते हैं, संपादक में हाइलाइट करना less (एएनएसआई अनुक्रम प्रारूप और टर्मिनल में ऋण सीमाएं खिड़की)।
  • less स्वचालित प्रदर्शन करने वाले Emacs सुविधाओं का लाभ उठाएगा रूपांतरण, उदाहरण के लिए फ़ाइलों को असंपीड़ित। वास्तव में, आप सिखा सकते हैं Emacs किसी भी प्रकार का रूपांतरण करने के लिए स्वचालित रूप से एक रूपांतरित करें एक बाहरी उपकरण का उपयोग कर मानव पठनीय रूप में बाइनरी फ़ाइल।
  • आप Emacs 'वाक्यविन्यास का उपयोग कर अन्य मशीनों पर स्थित फ़ाइलों को देख सकते हैं रिमोट एक्सेस के लिए /USER@HOST:FILENAME

उपयोगी कड़ियाँ

  • e2ansi पर वितरित किया जाता है Melpa और का उपयोग कर स्थापित किया जा सकता है मानक Emacs पैकेज सिस्टम
  • e2ansi पर होस्ट किया गया है GitHub
  • e2ansi पर पेज Emacs विकी
  • का घर less

ऑपरेटिंग सिस्टम नोट्स

  • एमएस विंडोज़ पर, कंसोल एनएनएसआई अनुक्रमों का मूल रूप से समर्थन नहीं करता है। सौभाग्य से, less आवेदन उन्हें प्रस्तुत करने में सक्षम है। मैं किसी भी समकालीन बाइनरी वितरण के बारे में पता नहीं है less के लिये एमएस विंडोज और प्रदान की गई बिल्ड फाइलों का उपयोग करना मुश्किल है। सौभाग्य से, इसे बनाना आसान है less का उपयोग करते हुए CMake, देख यह लिखावट के लिये विवरण।

  • ओएस एक्स का एक प्राचीन संस्करण वितरित करता है less। सौभाग्य से, यह है स्रोत से सीधे एक आधुनिक संस्करण बनाने के लिए आसान है।


7
2018-02-04 19:10



ओएस एक्स के लिए, मैं पैकेज प्रबंधक का उपयोग करने की सलाह दूंगा शराब बनाना [brew.sh/] साथ में ब्रू डुप्स [github.com/Homebrew/homebrew-dupes] चीजों के अद्यतित संस्करण स्थापित करने के लिए less। - drevicko
"emacs द्वारा संचालित" - एक फ़ाइल देखने के लिए पूरे वीएम चल रहा है? ;-) और +1 - Alois Mahdal


यदि आपके पास है जीएनयू स्रोत-हाइलाइट स्थापित किया गया है आप एक फ़ाइल के वाक्यविन्यास को हाइलाइट करने के लिए निम्न आदेश का उपयोग कर सकते हैं:

$ src-hilite-lesspipe.sh yourfile.xml | less -R

6
2018-04-07 07:52



कर सकते हैं src-hilite-lesspipe.sh एक पाइप के माध्यम से भी इनपुट प्राप्त करें? - waldyrious


source-highlight एक .sh स्क्रिप्ट में स्थित है /usr/share/source-highlight/*.sh। मैंने नाम के साथ एक प्रतीकात्मक लिंक बनाया है hcat में /usr/bin

यह टर्मिनल (कंसोल) में हाइलाइट आउटपुट दिखाता है - hcat बिल्ली पर प्रकाश डाला गया है।

कैसे:

[me@this]<bash><~> 43 
21:23 Fri Apr 19 > sudo apt-get install source-highlight

[me@this]<bash><~> 28 
21:03 Fri Apr 19 > ll /usr/share/source-highlight/*.sh
-rwxr-xr-x 1 root root 432 May  1  2012 /usr/share/source-highlight/src-hilite-lesspipe.sh*

[me@this]<bash><~> 29 
21:04 Fri Apr 19 > sudo su
root@this:/home/me# cd /usr/bin/
root@this:/usr/bin# ln -s /usr/share/source-highlight/src-hilite-lesspipe.sh hcat

[me@this]<bash><~> 36 
21:07 Fri Apr 19 > hcat test.xml

2
2018-04-19 18:25