เน้นคำสั่งและไวยากรณ์น้อยลง


43

ฉันจำเป็นต้องใช้less commandกับการเน้นไวยากรณ์ของคำสั่งที่เป็นกลุ่มสำหรับpython, C, bashและภาษาอื่น ๆ

ฉันจะใช้สีที่เน้นสีซินแท็กซ์ตามvimสีได้less commandอย่างไร

คำตอบ:


35

การเน้นไวยากรณ์ใช้lessงานได้ดีกับระบบ * nix ส่วนใหญ่

apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

ใช้งาน distros แบบ Fedora / RedHat /usr/bin/src-hilite-lesspipe.shแทน

แม้ใน Cygwin คุณสามารถทำมันได้ด้วยการปรับเล็ก ๆ น้อย ๆ ของเส้นทางเชลล์สคริปต์และติดตั้งกับแทนapt-cygapt

อย่างไรก็ตามการใช้วิธีนี้ทำให้การเรียกดูไฟล์ขนาดใหญ่ช้าลงอย่างมาก ฉันขอแนะนำให้ใช้aliasในวิธีที่จะใช้การLESSOPENส่งออกข้างต้นเมื่อจำเป็นเท่านั้นเช่นนี้

alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '

โดยที่-Mแฟล็กสะดวกที่จะแสดงชื่อไฟล์และหมายเลขบรรทัดด้วย

อย่าลืมคัดลอกสคริปต์ไปยังเส้นทางถังขยะของคุณ:

cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh

ปรับปรุง: 2019-07-24

เห็นได้ชัดว่าเมื่อติดตั้ง Cygwin ล่าสุดคุณมีไฟล์ต่อไปนี้ในเส้นทางของคุณ:

source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe

ดังนั้นตอนนี้คุณยังต้องดำเนินการที่จะเพิ่มการตั้งค่าไฟล์:source-highlight-settings.exe
$HOME/.source-highlight/source-highlight.conf


นามแฝง 'lessh' ไม่ทำงานสำหรับฉัน ใช้ bash บน osx ถอนหายใจ
Scott Biggs

นั่นเป็นปัญหาที่แตกต่างอย่างสิ้นเชิงน่าจะเกิดจาก OSX ที่ใช้ตัวเลือกเชลล์และสภาพแวดล้อมที่แตกต่างกันซึ่งอาจส่งผลต่อการตีความคำพูดเดี่ยวและคู่ต่างกัน คุณสามารถตรวจสอบและการตั้งค่าเหล่านี้ด้วยและshopt -p set
not2qubit

1
สิ่งนี้ใช้ได้กับฉันใน OSX: ครั้งแรกที่ฉันติดตั้งด้วย: brew install source-highlightจากนั้นฉันเพิ่มนามแฝง:alias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
mhvelplund

40

less ไม่รองรับการเน้นไวยากรณ์

vimเช่นเดียวกับviโคลนทั้งหมดมีโหมดอ่านอย่างเดียวviewซึ่งคุณสามารถใช้เพื่อดูไฟล์ได้ สนับสนุนคุณสมบัติทั้งหมดของกลุ่มรวมถึงการเน้นไวยากรณ์

เช่น

view filename.py

ความแตกต่างที่สำคัญระหว่างviewและviคือมุมมองนั้นไม่ "ล็อค" ไฟล์ที่คุณกำลังดูโดยการสร้างไฟล์. swp


ถ้าview commandวิธีการของคุณradare packageไม่ใช่แค่อ่านเท่านั้น
PersianGulf

4
อืมviewคำสั่งของฉันดูเหมือนจะไม่สนับสนุนการเน้นไวยากรณ์ ฉันได้พยายาม:syntax enableและแต่ฉันมักจะได้รับ:syntax on syntax: Not an editor commandฉันvimรองรับการเน้นสี
เฟลิกซ์

@felix - คุณมีสิ่งที่viชอบnviหรือelvisติดตั้งอีกหรือไม่ ตรวจสอบของคุณ/usr/bin/view- ในระบบเดเบียนของฉันก็ symlink ให้/etc/alternatives/viewซึ่งเป็นในทางกลับกัน symlink /usr/bin/vim.basicไป
cas

1
อืมในกรณีของฉันมันเป็น symlink ที่/usr/bin/exซึ่งอยากรู้อยากเห็นเป็นของviแพ็คเกจ
เฟลิกซ์

2
ฉันสามารถยืนยันสิ่งที่ @Felix พูดว่าบนarch linux viewเป็น symlink ไปยัง/usr/bin/exของcore/viแพคเกจ
x-yuri

13

lessไม่สามารถสอนให้องค์ประกอบไฮไลท์ไวยากรณ์ lessแต่เป็นกลุ่มที่สามารถใช้เป็นเพจเจอร์เช่นทดแทนสำหรับ มีปลั๊กอินขั้นสูงมากกว่า แต่สคริปต์พื้นฐานมาพร้อมกับ Vim ( $VIMRUNTIME/macros/less.sh) สำหรับข้อมูลทั้งหมดดูที่การใช้ vim เป็นเพจเจอร์ที่เน้นไวยากรณ์บน Vim Tips Wiki


2
ฉันประหลาดใจที่ผู้คนไม่ใส่ใจกับ Google ก่อนโพสต์คำตอบที่ผิด ...
ไม่ใช่ 2qubit

1
@ user1147688: หากคุณอ่านคำตอบของเฟลิกซ์อย่างรอบคอบแหล่งที่มาของ GNU นั้นเป็นโปรแกรมภายนอก มันไม่ได้lessเป็นการเน้น แต่ Vim มีความสามารถนี้ในตัว
Ingo Karkat

สำหรับคำถาม "ฉันจะใช้สีเน้นไวยากรณ์ตามสีเป็นกลุ่มสำหรับคำสั่งน้อยได้อย่างไร" คำตอบ "โดยใช้แหล่งที่มาเน้น" ดูเหมือนว่าคำตอบที่ถูกต้องมากขึ้นว่า "โดยใช้เป็นกลุ่ม"
Zano

1
+1 แต่ฉันแน่ใจว่าความคิดเห็นเหล่านี้กำลังพยายามจะพูดอะไร - ไม่สามารถบอกได้ว่าพวกเขาเป็นบวกหรือลบ ("... google ก่อนโพสต์คำตอบที่ผิด"? "การติดตั้ง xyz นั้นถูกต้องมากกว่าการใช้ เป็นกลุ่ม "?) คำตอบนี้ชัดเจนว่าเป็น "คำตอบที่ถูกต้องที่สุด" โดยทั่วไปแล้ว OP จะไม่ทราบคุณลักษณะของเสียงเรียกเข้านี้และคำตอบนี้จะช่วยให้ OP ทราบว่ามีอยู่จริง ใบมีดโกนของ Occam คำตอบนั้นสามารถปรับปรุงได้โดยการแสดงตัวอย่างเช่น$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael

11

ฉันมักจะไม่เห็นด้วยกับ Ingo less สามารถสอนให้เน้นไวยากรณ์ ลองดูคำตอบนี้บน SuperUser โดยทั่วไปคุณจะต้องติดตั้งแหล่งเน้นของ GNU (มีให้ใน repos แพ็คเกจ distro สำคัญทั้งหมด) จากนั้นเพิ่มสิ่งต่อไปนี้ลงใน.bashrc( .bash_profileหรือสิ่งที่คุณมี):

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

อย่างไรก็ตามทราบว่าsource-highlightไม่เป็นที่มีประสิทธิภาพเช่นvimเน้น 's ใช้สิ่งที่เหมาะกับคุณที่สุด

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