พร้อมรับคำ 256 สีใน Zsh


14

ฉันจะตั้งค่าพรอมต์ของฉันให้เป็นสีแบบ 256 สีได้อย่างไร ฉันกำลังมองหาที่เทียบเท่ากับพรอมต์ทุบตี:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "

1
อัปยศกับทุกคนที่จ้องมอง แต่ไม่ upvoted!
phunehehe

export PS1='%{[38;5;24m%};%{[0m%} 'เป็นสิ่งที่ฉันต้องการ
Sardathrion - ต่อต้านการล่วงละเมิดทาง SE

คำตอบ:


9

ขั้นแรกตรวจสอบให้แน่ใจว่าเทอร์มินัลของคุณรองรับ 256 สีซึ่งฉันคิดว่าคุณมีอยู่แล้ว ประการที่สองใช้PS1ตัวแปรที่มีรหัสที่ถูกต้องตัวอย่างเช่น

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

สิ่งนี้จะให้คุณพร้อมกับชื่อโฮสต์เป็นตัวหนาโดยมีสีพื้นหน้า 214 และสีพื้นหลังเป็น 123

โปรดทราบว่า^[คือ "ป้อน" โดยพิมพ์Ctrl+ vและ+Ctrl [ดูบทความที่ยอดเยี่ยม " สิ่งที่ 256 สี " สำหรับรายการคุณลักษณะทั้งหมด


ใช่ฉันใช้เทอร์มินัลเปิดใช้งานสี urxvt 256
Sardathrion - ต่อต้านการล่วงละเมิดทาง SE

ฉันจะตรวจสอบว่าเทอร์มินัลของฉันรองรับ 256 สีได้อย่างไร ตัวอย่างเช่น gnome-terminal (Ubuntu) รองรับ 256 สีหรือไม่
Amelio Vazquez-Reina

ใช้สคริปต์นี้ (บทความเต็มfrexx.de/xterm-256-notes ) gnome-terminalรองรับ 256 สี
phunehehe

1
โฮสต์ของลิงก์เสีย (502 เกตเวย์ไม่ดี)
Pikrass

1
@Pikrass ฉันไม่พบ 404
Totor

14
export PS1='%F{214}%K{123}%m%k%f'

จากman zshmisc:

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

นอกจากนี้เพื่อลองใช้มันสามารถใช้เช่นนั้น:

$> print -P '%F{214}%K{123}%m%k%f'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.