bash: หน้าคนที่มีสี


15

ฉันจะต้องดูที่ระบบในการทำให้หน้าคนเป็นสี?

หน้า man ดูน้อยกว่าดังนั้นฉันพยายามเพิ่มบรรทัดต่อไปนี้ใน. bashrc ของฉันเพื่อเปลี่ยนสี: (ใช้งานได้ดี btw)

 #
 #   L E S S   C O L O R S   F O R   M A N   P A G E S
 #

 # CHANGE FIRST NUMBER PAIR FOR COMMAND AND FLAG COLOR
 # currently 0;33 a.k.a. brown, which is dark yellow for me 
    export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold

 # CHANGE FIRST NUMBER PAIR FOR PARAMETER COLOR
 # currently 0;36 a.k.a. cyan
    export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

 # don't change anything here
    export LESS_TERMCAP_mb=$'\E[1;31m'       # begin blinking
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline

 #########################################
 # Colorcodes:
 # Black       0;30     Dark Gray     1;30
 # Red         0;31     Light Red     1;31
 # Green       0;32     Light Green   1;32
 # Brown       0;33     Yellow        1;33
 # Blue        0;34     Light Blue    1;34
 # Purple      0;35     Light Purple  1;35
 # Cyan        0;36     Light Cyan    1;36
 # Light Gray  0;37     White         1;37
 #########################################

เพื่อความอัปยศของฉันฉันต้องยอมรับว่าฉันไม่พบสิ่งที่คู่ตัวเลขที่สองความหมายคือและ5;745;146

บางคนสามารถอธิบายเพิ่มเติมได้หรือไม่


มันคืออะไรด้วยคะแนนเสียงใกล้ชิด? ฉันรู้จักลิงก์วิกิพีเดียมาก่อนแล้วและฉันก็ยังไม่รู้ว่าลำดับของลำดับนั้นหมายถึงอะไร การทดลองและข้อผิดพลาดและการตั้งค่าต่าง ๆ ไม่ได้ช่วยฉันเลย "go RTFM" แบบง่ายไม่ช่วยฉันที่นี่
sjas

คุณต้องล้อเล่นฉัน ... นี่มันเยี่ยมมาก! เอกสารนี้อยู่ที่ไหน ฉันดูในหน้า man ของ BASH และ LESS แต่ไม่พบสตริง LESS_TERMCAP
ysap

ตกลงพบสิ่งนี้สำหรับผู้เริ่ม: unix.stackexchange.com/questions/119/colors-in-man-pages
ysap

สิ่งนี้: " for name [ [ in [ word ... ] ] ; ] do list ; done" เข้าท่ามากกว่าตอนนี้ในสี ... 8-)
ysap

@ysap: ยังไม่เห็นลิงก์นั้นและจำไม่ได้ว่าอยู่ที่ไหน ใส่สิ่งนี้ไว้ที่นี่เพื่อวัตถุประสงค์ในการจัดทำเอกสารและถามเกี่ยวกับลำดับการหลีกหนี :)
sjas

คำตอบ:


1
export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold
export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

ในทั้งสองกรณีนี้สีและคุณลักษณะทั้งหมดจะถูกรีเซ็ต (0) สีพื้นหน้าจะเปลี่ยนเป็นสีเหลือง / น้ำตาล (33) หรือสีฟ้า (36) จากนั้นเปิดกะพริบ (5) จากนั้นมีสิ่งอื่นเกิดขึ้น ( 74 หรือ 146) ซึ่งอาจไม่ได้กำหนดและไม่ต้องการ

export LESS_TERMCAP_so=$'\E[38;5;246m'

สิ่งนี้แตกต่างกันเพราะ 38 ใช้พารามิเตอร์ตัวเลขเพิ่มเติม มันย่อมาจากสีพื้นหน้าขยาย (และในทำนองเดียวกัน 48 จะเหมือนกันสำหรับพื้นหลัง) และถ้าตามด้วย 5 เป็นพารามิเตอร์ต่อไป (ซึ่งไม่มีอะไรเกี่ยวข้องกับการกระพริบในครั้งนี้) หมายเลขที่สามระบุดัชนีของสี ( 0-255: 16 สีมรดกมาตรฐานตาม 6x6x6 RGB ก้อนตามด้วย 24 สีสีเทา) ดูเช่นที่นี่

เทอร์มินัลอีมูเลเตอร์บางรุ่นยังสนับสนุนสี RGB โดยพลการโดยตรงในกรณีนั้น 38 ควรตามด้วย 2 แล้วตามด้วยตัวเลขทศนิยม 3 ตำแหน่งในช่วง 0-255 สำหรับ R, G, B ตามลำดับเช่น # BADA55 คือ

\E[38;2;186;218;85m

1
มันค่อนข้างแย่ที่คุณไม่สามารถรู้ได้ว่า;พารามิเตอร์ตัวใดเป็นตัวเพิ่มพารามิเตอร์ตัวก่อนหน้าและตัวย่อตัวใหม่โดยไม่ต้องดูตัวเลขที่แน่นอน ดังนั้นจึงแนะนำว่าควรคั่นพารามิเตอร์เพิ่มเติมด้วย a :แทน ตัวอย่างเช่นการตั้งค่าทุกอย่างแล้วจึงเปลี่ยนเป็นสี # 246 และยังเปิดกระพริบแทนการที่คุณบอกว่า0;38;5;246;5 0;38:5:246;5น่าเสียดายที่มันรองรับเทอร์มินัลน้อยกว่า
egmont


1

ด้วยความช่วยเหลือของ http://invisible-island.net/xterm/ctlseqs/ctlseqs.htmlและเชื่อมโยงวิกิพีเดียที่ผมมาถึงข้อสรุปว่าหมายถึง55 Blink: Slow less than 150 per minute

ตัวเลขสุดท้ายดูเหมือนว่า:

 If 88- or 256-color support is compiled, the following apply. 
 P s = 3 8 ; 5 ; P s  Set foreground color to the second P s . 
 P s = 4 8 ; 5 ; P s  Set background color to the second P s .

นอกจากนี้ดูเหมือนว่าจำนวนของตัวเลขไม่สำคัญเพียงแค่เรียงตามลำดับเวลา


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