Câu trả lời:
Dưới đây là một ví dụ về cách đặt lời nhắc màu đỏ:
PS1=$'\e[0;31m$ \e[0m'
Điều kỳ diệu là \e[0;31m
(bật nền đỏ) và \e[0m
(tắt các thuộc tính của nhân vật). Chúng được gọi là trình tự thoát. Các trình tự thoát khác nhau cung cấp cho bạn các kết quả khác nhau, từ vị trí con trỏ tuyệt đối, đến màu sắc, để có thể thay đổi thanh tiêu đề của cửa sổ, v.v.
Để biết thêm về trình tự thoát, hãy xem mục nhập wikipedia về mã thoát ANSI
Đặt cái này vào ~/.zshrc
:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
Màu sắc được hỗ trợ:
red
, blue
, green
, cyan
, yellow
, magenta
, black
, & white
(từ câu trả lời này ) mặc dù các máy tính khác nhau có thể có các tùy chọn có giá trị khác nhau.
Mã màu bao quanh (và bất kỳ ký tự không thể in nào khác) với %{....%}
. Điều này là để gói văn bản hoạt động chính xác.
Ngoài ra, đây là cách bạn có thể làm cho điều này hoạt động với việc cắt tỉa thư mục từ đây .
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
zsh: colors: function definition file not found
%{...%}
phương tiện rằng nội dung sẽ được hiểu là một dãy thoát theo nghĩa đen, vì vậy con trỏ wont di chuyển trong khi in chuỗi. Nếu bạn không sử dụng điều này, các mã màu thực sự có thể di chuyển con trỏ và tạo ra các hiệu ứng không mong muốn. Đây là tài liệu trong Visual Effects
phần trong trang người đàn ông zshmisc
Zsh đi kèm với nội dung lời nhắc màu. Thử
autoload -U promptinit && promptinit
và sau đó prompt -l
liệt kê các lời nhắc có sẵn, -p fire
xem trước lời nhắc "chữa cháy", -s fire
đặt nó.
Khi bạn đã sẵn sàng để thêm lời nhắc, hãy thêm nội dung như thế này bên dưới dòng tự động tải ở trên:
prompt fade red
Tôi không nghĩ điều autoload -U colors && colors
này là cần thiết nữa và người ta có thể đơn giản làm:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
để đạt được kết quả tương tự như câu trả lời của FireDude . Xem tài liệu ZSH để biết thêm thông tin.
autoload -U colors && colors
autoload
.
autoload on
?
autoload -U colors
, điều đó có nghĩa là bản phân phối của bạn đã có nó trong một số tệp khởi tạo zsh khác. Bạn vẫn nên đưa nó vào các tập lệnh mà bạn định chia sẻ với người khác.
for i in {1..256}; do print -P "%F{$i}Color : $i"; done;
%F{118}
(1 đến 256)$FG[018]
(1 đến 256)$fg[magenta]
(đỏ tươi, đỏ, trắng, vàng, đen, xanh lam, lục lam, xanh lục)PS1='%(?.%F{green}.%F{green})%n@%m:%~%# %f'
PS1='%{$fg[gray]%}[%T][%n@%m%{$reset_color%}:%c%{$reset_color%}%{$fg[gray]%}$(git_prompt_info)]$(prompt_char)%{$reset_color%} '
Định nghĩa biến (PS1 / PROMPT) cần được thêm vào ~/.zshrc
Chúng tôi cũng có thể xác định lại biến PS1 trên dấu nhắc hiện tại để kiểm tra nó ngay lập tức (các thay đổi không được lưu).
Câu trả lời của Bryan Oakley ở trên có một trục trặc vì nó đã được chỉ ra và giải pháp được đưa ra bởi Andrew Marshall mặc dù nó không có trục trặc, tuy nhiên nó không hiển nhiên cho việc tùy chỉnh quá nhiều màu sắc được sử dụng.
Vì macOS Catalina yêu cầu zsh làm shell mặc định từ bây giờ, tôi nghĩ rằng nhiều người có thể muốn tùy chỉnh lời nhắc của họ và có thể đến đây để tìm câu trả lời. Vì vậy, tôi nghĩ rằng tôi sẽ cố gắng đưa ra một bản tóm tắt rộng hơn và tiếp cận với các khái niệm liên quan chặt chẽ khác cho phép tùy chỉnh nhiều hơn.
Mã 3 chữ số cho nhiều màu sắc khác nhau. Trước hết, tại đây chúng ta có thể tìm thấy mã 3 chữ số cho nhiều màu sắc khác nhau: https://unix.stackexchange.com/a/124409/194343 . Ví dụ, 214 là một số loại màu cam.
Tiền cảnh và Nền. Thông tin quan trọng khác là đối với các màu nền F oreground và bac K, người ta có thể xác định những gì họ muốn với F và K tương ứng. Nguồn là hướng dẫn sử dụng zsh về hiệu ứng hình ảnh: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
Vì vậy, ví dụ, hai lệnh sau
autoload -U colors && colors
export PS1="%F{214}%K{000}%m%F{015}%K{000}:%F{039}%K{000}%~%F{015}%K{000}\$ "
trình bày tên máy chủ bằng màu cam với nền đen, tiếp theo là dấu hai chấm màu trắng nền đen, tiếp theo là thư mục làm việc hiện tại màu xanh lam sáng với nền đen, tiếp theo là ký hiệu đô la màu trắng nền đen.
Thông tin liên quan khác được tìm thấy bên dưới.
Thông tin nhanh chóng ở phía bên tay phải. Ví dụ: thêm dấu thời gian. Xem https://superuser.com/a/1251045/290299 . Tất nhiên, điều này có thể được mã hóa bằng màu, ví dụ như với một số màu xanh lam nhạt / tím, như sau:
RPROMPT="%F{111}%K{000}[%D{%f/%m/%y}|%@]"
Màu sắc cho ls
. Sau khi đọc hướng dẫn sử dụng cho ls, một ví dụ có thể kích hoạt các màu ls
bằng cách sử dụng hai lệnh sau:
export CLICOLOR=1
export LSCOLORS=gafacadabaegedabagacad
Cuối cùng, như một nhận xét cuối cùng rằng tôi chưa thử nghiệm vì tôi hài lòng với cấu hình của mình, một cách khác có thể dành cho ai đó cài đặt cổng coreutils
từ MacPorts và sau đó sử dụng gdircolors
(nguồn: https://unix.stackexchange.com/a/174596 / 194343 ). (Tôi có thể chỉnh sửa phần cuối cùng này trong tương lai vì tất cả những phần trên đều là những phần liên quan giúp cuộc sống hàng ngày trở nên thú vị hơn và dễ đối phó hơn nhiều).
Tôi nhận thấy rằng, với zsh5 (mặc định trên Debian Jessie), tất cả các giải pháp đó đều hoạt động:
$'\e[00m
$fg[white]
$fg{white}
Bây giờ, họ có một vấn đề: họ sẽ di chuyển con trỏ, dẫn đến hình decal xấu xí khi tab (để tự động hoàn thành). Giải pháp đơn giản là bao quanh các chuỗi thoát với %{FOOBAR%}
. Tôi đã mất một thời gian để tìm ra điều này. Đối với giải pháp thứ 2 và thứ 3, việc tải colors
mô-đun là bắt buộc. Để giữ cho giải pháp đầu tiên có thể đọc được, chỉ cần xác định các biến cho các màu bạn sử dụng.
Để nhận được lời nhắc có màu sắc tùy thuộc vào trạng thái thoát của lệnh cuối cùng, bạn có thể sử dụng điều này:
PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'
Chỉ cần thêm dòng này vào của bạn ~/.zshrc
.
Các tài liệu liệt kê placeholders càng tốt.
Hãy thử yêu thích của tôi: đặt vào
~/.zshrc
đường thẳng này:
PROMPT='%F{240}%n%F{red}@%F{green}%m:%F{141}%d$ %F{reset}'
đừng quên
source ~/.zshrc
để kiểm tra những thay đổi
bạn có thể thay đổi màu sắc / mã màu, tất nhiên :-)
man zshall và tìm kiếm PROMPT MỞ RỘNG
Sau khi đọc các câu trả lời hiện có ở đây, một số câu trả lời mâu thuẫn với nhau. Tôi đã thử các cách tiếp cận khác nhau trên các hệ thống chạy zsh 4.2 và 5+ và thấy rằng lý do khiến các câu trả lời này mâu thuẫn nhau là chúng không cho biết chúng được nhắm mục tiêu vào phiên bản ZSH nào. Các phiên bản khác nhau sử dụng cú pháp khác nhau cho việc này và một số trong số chúng yêu cầu các bản tự động thay thế khác nhau.
Vì vậy, đặt cược tốt nhất có lẽ là man zshall và tìm kiếm MỞ RỘNG KHUYẾN MÃI để tìm ra tất cả các quy tắc cho cài đặt cụ thể của zsh. Lưu ý trong phần nhận xét, những thứ như "Tôi sử dụng Ubuntu 11.04 hoặc 10.4 hoặc OSX" không có ý nghĩa lắm vì không rõ bạn đang sử dụng phiên bản ZSH nào. Ubuntu 11.04 không ngụ ý một phiên bản ZSH mới hơn ubuntu 10.04. Có thể có bất kỳ lý do nào khiến phiên bản cũ hơn được cài đặt. Vì vậy, một phiên bản ZSH mới hơn không ngụ ý sử dụng cú pháp nào mà không cần biết phiên bản ZSH đó là.
Để bổ sung cho tất cả các câu trả lời trên, một mẹo thuận tiện khác là đặt cài đặt lời nhắc màu vào một hàm zsh. Ở đó, bạn có thể xác định các biến cục bộ thành các lệnh dài hơn bí danh, ví dụ rc=$reset_color
hoặc xác định các biến màu của riêng bạn. Đừng quên đặt nó vào .zshrc
tệp của bạn và gọi hàm bạn đã xác định:
# Coloured prompt
autoload -U colors && colors
function myprompt {
local rc=$reset_color
export PS1="%F{cyan}%n%{$rc%}@%F{green}%m%{$rc%}:%F{magenta}%~%{$rc%}%# "
}
myprompt