วิธีรับแท็บสีให้สมบูรณ์


18

มีวิธีรับเอาท์พุทสีเมื่อใช้การเติมแท็บในเทอร์มินัลหรือไม่? สีของฉันใช้ได้ทุกที่ดังนั้นฉันจึงรู้ว่าฉันได้เปิดใช้งานเทอร์มินัลสีสำเร็จแล้ว

ใช้ bash ใน Ubuntu (10.10)


คุณจะระบุ "เอาท์พุทสีเมื่อใช้แท็บเสร็จสมบูรณ์" ได้อย่างไร?
slhck

คำตอบ:


21

ไม่มีสิ่งอำนวยความสะดวกใด ๆ ใน 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

1
@Ryan: Zsh ค่อนข้างเข้ากันได้กับ Bash คุณอาจจะพบว่าสวิตช์นั้นค่อนข้างง่าย มันมีคุณสมบัติที่ทรงพลังมากมายที่ Bash ไม่มี (หรือคุณต้องใช้ยูทิลิตี้ภายนอกสำหรับ) มีเพียงไม่กี่สิ่งที่แตกต่างกันอย่างมากในพื้นฐาน ตัวอย่างคือดัชนีอาเรย์นั้นใช้แบบตัวเดียวแทนที่จะเป็นแบบศูนย์ แต่มีการตั้งค่าที่ส่งผลต่อมัน ฉันใช้ zsh เป็นครั้งคราวเท่านั้น
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

1
@AstroFloyd: จากBash Manua : "คำจำกัดความสีถูกนำมาจากค่าของLS_COLORSตัวแปรสภาพแวดล้อม" เอกสารประกอบสำหรับตัวแปรที่เป็นที่นี่ ไม่มีการตั้งค่าสำหรับmanหน้าดังนั้นคุณจะต้องดูว่าLS_COLORSชุดของคุณได้รับจากที่ใดและหาชุดผสมสีที่สอดคล้องและเปลี่ยนแปลง ในระบบของฉันmanชื่อเพจจะไม่เปลี่ยนสีเมื่อแท็บเสร็จสมบูรณ์ (และ symlink ที่ไม่สมบูรณ์ขณะที่lsเอาต์พุตสีแดงบนสีเทา...
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบเพิ่มเติม

1
... เป็นสีน้ำเงินอ่อนเหมือนสัญลักษณ์ที่ถูกต้องในระหว่างการเติมแท็บ)
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

1
@AndyCarlson: ไม่bind -v | grep colorแสดงทั้งset colored-completion-prefix onและset colored-stats on? ถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้นเมื่อคุณพิมพ์ตัวอักษร a ตามด้วยการกด tab สองครั้ง หากคุณได้เพิ่มการตั้งค่าของคุณ~/.inputrcแต่ยังไม่ได้เริ่มเทอร์มินัลใหม่หรือยังไม่ได้ดำเนินการre-read-init-fileโดยการกด control-x control-r การตั้งค่าจะไม่มีผล
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

2
@AndyCarlson เอาต์พุตที่ bash prompt เมื่อคุณกด ctrl-x ctrl-v คืออะไร?
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

3

ผมไม่ทราบว่าเกี่ยวกับสีเสร็จสำหรับตัวเลือกคำสั่งและข้อโต้แย้ง แต่สำหรับชื่อไฟล์และไดเรกทอรีตาม ( /unix//a/133866 ) รัฐ user495470 ว่าในทุบตี 4.3 และหลังจากนั้นคุณสามารถเพิ่มset colored-stats onเพื่อ~/.inputrcที่จะได้รับสี ls <tab>เสร็จสิ้นเมื่อคุณทำ

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