สีในทุบตีหลังจากท่อผ่านน้อยลงหรือไม่


106

เมื่อฉันมี dircolors ที่กำหนดชีวิตเต็มไปด้วย ... สี

เมื่อฉันlsผ่านท่อlessเพื่อเลื่อนไปรอบ ๆ ฉันสูญเสียสี

ข้อเสนอแนะใด ๆ

คำตอบ:


105

เป็นไปได้มากว่าคุณใช้lsนามแฝงls --color=autoซึ่งบอกlsให้ใช้สีก็ต่อเมื่อผลลัพธ์เป็น tty หากคุณทำls --color(ซึ่งเทียบเท่าทางศีลธรรมls --color=always) นั่นจะเป็นการบังคับให้เปิดสี

คุณสามารถเปลี่ยนนามแฝงของคุณเพื่อทำเช่นนั้นได้ แต่ฉันไม่คิดว่าเป็นความคิดที่ดี --colorดีกว่าที่จะทำให้นามแฝงที่แตกต่างกันด้วย

lessความต้องการ-Rเช่นกัน


5
ทำไมคุณจะไม่เรียกว่าเป็นความคิดที่ดีที่จะนามแฝง LS ไปls --colorหรือls --color=alwaysสำหรับเรื่องที่?
j08lue

10
@ j08lue หากคุณใช้คำสั่งที่ไม่จัดการกับสีคุณจะได้รับอักขระขยะที่อาจทำให้คำสั่งสับสน ตัวอย่างเช่นฉันทำls --color=always | lessและได้รับ: ESC[01;32mexecute_once.shESC[0m(ฉันรู้ว่านี่เก่าและคุณอาจไม่สนใจ แต่สำหรับผู้เยี่ยมชมในอนาคตนี่อาจเป็นประโยชน์)
Ryan Amos

55

ลองน้อยลงด้วยตัวเลือก -R ดังนี้:

command | less -R

สิ่งนี้ใช้ได้กับฉันในหนึ่งเดียวแบบนี้:

ls -la | grep --color=always bash | less -r

และเช่นนี้เช่นกัน:

ls --color | less -R

แต่คุณต้องปรับแต่งเอาต์พุตหลัก (เอาต์พุตของ ls ในกรณีนี้) เล็กน้อยด้วยพารามิเตอร์ --color


ขอบคุณสิ่งนี้ใช้ได้กับ ack-grep ด้วย ack-grep my_string --color | น้อยกว่า -R
จุดชนวนไหล

1
- ไม่รู้จักสี: ls: ตัวเลือกที่ผิดกฎหมาย - - กำลังรัน bash บน osx
Scott Biggs

1
@Scott Biggs: ใน OSX ไม่มี --color; ลอง ls -G

@ Lu-Chi ถึงแม้ว่า-Gสีจะหายไป
Iulian Onofrei

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