ฉันจะแสดงการเน้นไวยากรณ์บนไฟล์ได้อย่างไร?


42

มีตัวแปรของcatบรรทัดโค้ดที่เน้นด้วยไวยากรณ์เอาต์พุตเมื่อใช้กับไฟล์ต้นฉบับหรือไม่?

แนวคิด: อาจvi[m]จะขอให้ผู้แก้ไขคนอื่นแก้ไขเนื้อหาที่เน้นไวยากรณ์ของไฟล์ที่กล่าวถึงstdoutและออกทันที

คำตอบ:


48

การส่งไฟล์ผ่านจะพยายามตรวจหาชนิดจากชื่อไฟล์และไฮไลต์อย่างเหมาะสมpygmentize-f terminal


นั่นคือตัวอักษร Star Trek: Deep Space Nine ในโลโก้ของพวกเขาหรือไม่ ถ้ามันยอดเยี่ยม
แอมเฟตามาจิน

2
พร้อมใช้งานเป็นแพ็คเกจpython-pygmentsบน Debian
enzotib

6
ฉันพบว่าalias pcat="pygmentize -f terminal256 -O style=native -g"เป็นทางออกที่ดี
Mikael Öhman

1
มีให้บริการผ่านทางpip install pygments
craigb

1
cat code.extension | pygmentize -f terminal -l extensionจริงๆแล้วมันต้องเป็น
fiatjaf

13

มาไฮไลท์แพคเกจที่มาพร้อมกับความหมายภาษาเอาท์พุท esc.outlang ซึ่งไฮไลท์มาตรฐาน ANSI ลำดับหนี

เสื้อคลุมที่มีประโยชน์src-hilite-lesspipe.shยังรวมอยู่ในแพคเกจเพื่อให้การแสดงไฮไลต์การส่งออกใน terminal src-hilite-lesspipe.sh source.fileเป็นเพียง

ที่จริงแล้วsrc-hilite-lesspipe.shเหตุผลหลักคือการช่วยเหลือการทำงานอัตโนมัติใช้กับsource-highlight lessคุณเพิ่งตั้งค่า:

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

จากนั้นless source.fileจะมีการแสดงซอร์สโค้ดที่ไฮไลต์ (รหัสในภาษาที่ไม่รู้จักจะไม่ผ่านการเปลี่ยนแปลงการไฮไลต์จะถูกข้ามในกรณีที่มีการเปลี่ยนเส้นทางเนื้อหาเช่นless < source.file)


ดีขอบคุณที่สละเวลาเขียนคำตอบนี้
เปาโล


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