หากฉันต้องการส่งออกไฟล์ซอร์สโค้ด C ที่มีการเน้นไวยากรณ์ฉันจะสามารถใช้งานได้cat
หรือไม่
หากฉันต้องการส่งออกไฟล์ซอร์สโค้ด C ที่มีการเน้นไวยากรณ์ฉันจะสามารถใช้งานได้cat
หรือไม่
คำตอบ:
แพคเกจ 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 ถ้าคุณรู้สึกเหมือนเพิกเฉยแมวไปเลย แต่นั่นอาจไม่เป็นที่ต้องการ
$1
:)
brew install source-highlight
กัน ไม่สามารถระบายสี yaml :(
ไวยากรณ์การส่งออกที่ไฮไลต์รหัสกับสิ่งที่ต้องการ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'
.functions
เป็นcolorize(){...}
เพื่อแก้ปัญหานี้ผมใช้ไฮไลต์ ฉันได้สร้างฟังก์ชั่นที่พยายามพิมพ์ไฟล์ด้วยการเน้นไวยากรณ์และหากมันล้มเหลวมันกลับไปที่การใช้ 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
}
สนุก!
ไม่แมวไม่มีความสามารถในการเน้นไวยากรณ์ หากคุณต้องการดูซอร์สโค้ดที่มีการเน้นไวยากรณ์ให้วางลงในกลุ่มหรือตัวเลือกที่คุณเลือก (ที่มีการเน้นไวยากรณ์) ด้วยวิธีนี้คุณสามารถเลื่อนดูผลลัพธ์ได้หากเป็นไฟล์ที่มีความยาวโดยใช้Ctrl+ F(ไปข้างหน้า) และCtrl+ B(ย้อนกลับ)
bat
ostechnix.com/…