ฉันจะกำหนดค่าสีของไดเรกทอรี 'ls' ใต้ zsh ได้อย่างไร


20

ฉันใช้ 'zsh' ในบางไดเรกทอรีเมื่อฉันทำ 'ls --color = tty' ฉันเห็นบางไดเรกทอรีมี 'ข้อความสีฟ้า' พร้อม 'พื้นหลังสีเขียว' ซึ่งทำให้อ่านยาก

คุณช่วยบอกวิธีกำหนดค่านี้ได้ไหม

ขอขอบคุณ.

คำตอบ:


29

สมมติว่าคุณใช้ GNU lsคุณสามารถระบุสีด้วยตัวแปรสภาพแวดล้อม LS_COLORS (โปรดทราบว่านี่คือlsคุณลักษณะGNU และไม่เฉพาะกับ zsh)

CoreUtils GNU มีโปรแกรมที่เรียกว่าdircolorsเพื่อช่วยให้คุณแปลงไฟล์กำหนดค่าได้ง่ายให้เป็นตัวแปร LS_COLORS ที่ซับซ้อน (ซับซ้อน) ดูman dircolorsคำสั่งและman dir_colorsไวยากรณ์ไฟล์การกำหนดค่า

คุณสามารถ

  1. ใช้dircolors --print-database >! dircolors.defaultเพื่อบันทึกค่าเริ่มต้น (มันมีข้อความคำอธิบายบางส่วน) แล้วปรับเปลี่ยน
  2. Google สำหรับไฟล์ dircolors ที่กำหนดค่าไว้ล่วงหน้าแฟนซี (เช่นhttps://github.com/seebi/dircolors-solarizedนี้(ฉันไม่มีส่วนเกี่ยวข้องกับเรื่องนี้))

เมื่อเสร็จแล้วคุณจะต้องdircolorsเปลี่ยนให้เป็น LS_COLORS ที่เหมาะสม โปรดทราบว่าdircolorsเอาต์พุตในรูปแบบ bash และ csh สำหรับzshคุณควรใช้bashเอาต์พุตที่จัดรูปแบบ

PS: ใช้แทน ls --color=autols --color=tty


สิ่งนี้ไม่เป็นความจริงสำหรับสีที่กำหนดเอง LS_COLORไม่ทำงานโดยค่าเริ่มต้นใน zsh ด้วยเหตุผลบางอย่าง ดูโพสต์อื่น ๆ อีกมากมายที่บ่นเกี่ยวกับเรื่องนี้: 1) superuser.com/questions/700406/zsh-not-recognizing-ls-colors 2) github.com/robbyrussell/oh-my-zsh/issues/5349
Charlie Parker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.