มีวิธีรับเอาท์พุทสีเมื่อใช้การเติมแท็บในเทอร์มินัลหรือไม่? สีของฉันใช้ได้ทุกที่ดังนั้นฉันจึงรู้ว่าฉันได้เปิดใช้งานเทอร์มินัลสีสำเร็จแล้ว
ใช้ bash ใน Ubuntu (10.10)
มีวิธีรับเอาท์พุทสีเมื่อใช้การเติมแท็บในเทอร์มินัลหรือไม่? สีของฉันใช้ได้ทุกที่ดังนั้นฉันจึงรู้ว่าฉันได้เปิดใช้งานเทอร์มินัลสีสำเร็จแล้ว
ใช้ bash ใน Ubuntu (10.10)
คำตอบ:
ไม่มีสิ่งอำนวยความสะดวกใด ๆ ใน Bash ในการแสดงผลสีในระหว่างการสร้างเสร็จเนื่องจากมีในปลาและ zsh หนึ่งสามารถเขียนฟังก์ชั่นเสร็จสมบูรณ์ที่ลำดับการควบคุมสีเอาท์พุท แต่คุณจะต้องรักษาสำเนาของความสำเร็จที่เสนอโดยมีและไม่มีรหัสสีหรือตัดออกเมื่อผู้ใช้ทำการเลือกเนื่องจาก Bash ใช้การเลือกโดยตรงตามปกติและรหัสสีจะ รับในทาง
หากนี่เป็นคุณสมบัติที่สำคัญสำหรับคุณฉันขอแนะนำให้คุณพิจารณาใช้ zsh
ปรับปรุง
Bash 4.3 readline เพิ่มตัวแปรที่เปิดใช้งานสีสำหรับการเติมแท็บเพื่อแสดงสีที่แตกต่างกันสำหรับไฟล์ที่สามารถเรียกใช้งานไดเร็กตอรี่ ฯลฯ ระหว่างการเติมแท็บ:
colored-stats
Readline ใน Bash 4.4 ที่กำลังมาถึงจะเพิ่มตัวแปรที่ทำให้สีสามารถระบุส่วนที่ตรงกันของสตริงในระหว่างการเติมแท็บ
colored-completion-prefix
คุณสามารถดูค่าของตัวแปรเหล่านี้ได้โดยใช้
bind -v | grep color
หากต้องการตั้งค่าให้เพิ่มบรรทัดลงใน~/.inputrc
ไฟล์ของคุณเช่น:
set colored-stats on
LS_COLORS
ตัวแปรสภาพแวดล้อม" เอกสารประกอบสำหรับตัวแปรที่เป็นที่นี่ ไม่มีการตั้งค่าสำหรับman
หน้าดังนั้นคุณจะต้องดูว่าLS_COLORS
ชุดของคุณได้รับจากที่ใดและหาชุดผสมสีที่สอดคล้องและเปลี่ยนแปลง ในระบบของฉันman
ชื่อเพจจะไม่เปลี่ยนสีเมื่อแท็บเสร็จสมบูรณ์ (และ symlink ที่ไม่สมบูรณ์ขณะที่ls
เอาต์พุตสีแดงบนสีเทา...
bind -v | grep color
แสดงทั้งset colored-completion-prefix on
และset colored-stats on
? ถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้นเมื่อคุณพิมพ์ตัวอักษร a ตามด้วยการกด tab สองครั้ง หากคุณได้เพิ่มการตั้งค่าของคุณ~/.inputrc
แต่ยังไม่ได้เริ่มเทอร์มินัลใหม่หรือยังไม่ได้ดำเนินการre-read-init-file
โดยการกด control-x control-r การตั้งค่าจะไม่มีผล
ผมไม่ทราบว่าเกี่ยวกับสีเสร็จสำหรับตัวเลือกคำสั่งและข้อโต้แย้ง แต่สำหรับชื่อไฟล์และไดเรกทอรีตาม ( /unix//a/133866 ) รัฐ user495470 ว่าในทุบตี 4.3 และหลังจากนั้นคุณสามารถเพิ่มset colored-stats on
เพื่อ~/.inputrc
ที่จะได้รับสี ls <tab>
เสร็จสิ้นเมื่อคุณทำ