Dấu nhắc 256 màu trong Zsh


14

Làm cách nào tôi có thể đặt dấu nhắc của mình để được tô màu 256 màu? Tôi đang tìm kiếm một tương đương với dấu nhắc bash:

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

1
Xấu hổ cho bất cứ ai nhìn chằm chằm nhưng không được nâng niu!
phunehehe

export PS1='%{[38;5;24m%};%{[0m%} 'chính xác là những gì tôi muốn.
Sardathrion - Phục hồi Monica

Câu trả lời:


9

Đầu tiên, đảm bảo rằng thiết bị đầu cuối của bạn hỗ trợ 256 màu, mà tôi cho rằng bạn đã có. Thứ hai, sử dụng một PS1biến với mã chính xác, ví dụ:

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

Điều này sẽ cung cấp cho bạn một dấu nhắc với tên máy chủ được in đậm, với màu nền trước là 214 và màu nền là 123.

Lưu ý rằng ^["được nhập" bằng cách nhập Ctrl+ vCtrl+ [. Xem bài viết xuất sắc này " Điều 256 màu đó " cho toàn bộ danh sách các thuộc tính.


Có, tôi đang sử dụng thiết bị đầu cuối cho phép urxvt 256 màu.
Sardathrion - Phục hồi Monica

Làm cách nào để xác minh xem thiết bị đầu cuối của tôi có hỗ trợ 256 màu không? Ví dụ: gnome-terminal (Ubuntu) có hỗ trợ 256 màu không?
Amelio Vazquez-Reina

Sử dụng tập lệnh này (toàn bộ bài viết frexx.de/xterm-256-notes ). gnome-terminalkhông hỗ trợ 256 màu.
phunehehe

1
Máy chủ của liên kết bị hỏng (502 cổng xấu).
Gulrass

1
@Pikrass Tôi không tìm thấy 404.
Típ

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

Từ 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.

Ngoài ra để dùng thử, nó có thể được sử dụng như thế:

$> print -P '%F{214}%K{123}%m%k%f'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.