มีตัวเลือกให้แมวออกด้วยสีหรือไม่?


คำตอบ:


18

แพคเกจ GNU ซึ่งเป็นไฮไลต์แหล่งที่มาดูเหมือนจะทำเคล็ดลับ (แม้ว่าจะไม่ได้ใช้ cat - ตามที่ John T ชี้ให้เห็นมันเป็นไปไม่ได้สำหรับแมวโดยเฉพาะ) สามารถใช้งานผ่าน apt-get บน Ubuntu และต้องใช้ Boost regex library ตรวจสอบผู้จัดการแพคเกจของคุณเพื่อดูว่ามีทั้งสองอย่างมิฉะนั้นคุณสามารถคว้าพวกเขาจากเว็บ หน้า GNU ที่เชื่อมโยงก่อนหน้านี้มีลิงก์ไปยัง Boost ฉันคิดว่า

หลังจากการติดตั้งผมสร้างสคริปต์ใหม่ในเส้นทางที่เรียกว่าฉัน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:)
mgalgs

อ๋อ mitch_feaster คุณเป็นจุด :]
rgm

2
ทำงานบน Mac ได้เช่นbrew install source-highlightกัน ไม่สามารถระบายสี yaml :(
Sairam

9

ไวยากรณ์การส่งออกที่ไฮไลต์รหัสกับสิ่งที่ต้องการcatฉันสร้างccatคำสั่งโดยทำตามคำแนะนำที่http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/

#!/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'

วิธีการติดตั้งแบบเติมเงิน: easy_install - install-dir $ SOMEDIR Pygments
psihodelia

ฉันชอบโซลูชันแบบพกพาประเภทนี้ ฉันเพิ่มสคริปต์นี้เป็นฟังก์ชั่นการทุบตีฉัน.functionsเป็นcolorize(){...}
guneysus

3

เพื่อแก้ปัญหานี้ผมใช้ไฮไลต์ ฉันได้สร้างฟังก์ชั่นที่พยายามพิมพ์ไฟล์ด้วยการเน้นไวยากรณ์และหากมันล้มเหลวมันกลับไปที่การใช้ cat เพื่อพิมพ์ไฟล์ คุณสามารถเปลี่ยนรูปแบบการเน้นไวยากรณ์เป็นสิ่งที่คุณต้องการ

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
}

หากคุณบน Mac และคุณใช้ Homebrew (ขอแนะนำ!) brew install highlightคุณสามารถติดตั้งไฮไลท์ด้วยการวิ่ง มิฉะนั้นก็ควรจะมีอยู่ในที่สุดผู้จัดการแพคเกจอื่น ๆ และสามารถดาวน์โหลดได้ที่นี่

ฉันได้สร้างฟังก์ชันเพื่อพิมพ์ไฟล์ที่มีการเน้นไวยากรณ์เป็น html และเปิดในเบราว์เซอร์เพื่อพิมพ์ (อาศัยopenคำสั่งบน OS X):

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(ย้อนกลับ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.