명령 줄에서 출력의 시작과 끝을 더 잘 인식하기 위해 프롬프트의 색상을 변경하여 프로그램 출력과 눈에 띄게 다르게하고 싶습니다. 내가 zsh를 사용할 때 누군가 나에게 힌트를 줄 수 있습니까?
답변
다음은 빨간색 프롬프트를 설정하는 방법의 예입니다.
PS1=$'\e[0;31m$ \e[0m'
마법은 \e[0;31m
(빨간색 전경 \e[0m
켜기 )와 (캐릭터 속성 끄기)입니다. 이를 이스케이프 시퀀스라고합니다. 다른 이스케이프 시퀀스는 절대 커서 위치, 색상, 창의 제목 표시 줄 변경 등 다양한 결과를 제공합니다.
이스케이프 시퀀스에 대한 자세한 내용 은 ANSI 이스케이프 코드에 대한 wikipedia 항목을 참조하십시오 .
답변
이것을 넣으십시오 ~/.zshrc
:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
지원 색상 :
red
, blue
, green
, cyan
, yellow
, magenta
, black
, white
(에서 이 대답 ) 다른 컴퓨터는 다른 유효한 옵션이있을 수 있지만.
색상 코드 (및 기타 인쇄 할 수없는 문자)를 %{....%}
. 이것은 텍스트 줄 바꿈이 올바르게 작동하기위한 것입니다.
또한, 여기이가에서 디렉토리가 트리밍 작업을 얻을 수있는 방법입니다 여기 .
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
답변
Zsh에는 컬러 프롬프트가 내장되어 있습니다. 시험
autoload -U promptinit && promptinit
그런 다음 prompt -l
사용 가능한 프롬프트 를 나열 -p fire
하고 “fire”프롬프트를 미리보고 -s fire
설정합니다.
프롬프트를 추가 할 준비가되면 위의 자동로드 행 아래에 다음과 같이 추가하십시오.
prompt fade red
답변
autoload -U colors && colors
더 이상 필요 하지 않으며 간단하게 할 수 있습니다.
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
FireDude의 답변 과 동일한 결과를 얻으려면 . 자세한 정보는 ZSH 문서 를 참조하십시오.
답변
사용 가능한 색상 :
for i in {1..256}; do print -P "%F{$i}Color : $i"; done;
사용 가능한 변수 :
%F{118}
(1 ~ 256)$FG[018]
(1 ~ 256)$fg[magenta]
(마젠타, 빨강, 흰색, 노랑, 검정, 파랑, 청록, 녹색)
프롬프트 예 :
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%} '
설치:
변수 정의 (PS1 / PROMPT)를 추가해야합니다. ~/.zshrc
현재 프롬프트에서 PS1 변수를 다시 정의하여 즉시 테스트 할 수도 있습니다 (변경 사항은 저장되지 않음).
답변
위의 Bryan Oakley의 답변은 이미 지적 된 바와 같이 결함이 있으며 Andrew Marshall이 제공 한 솔루션은 결함이 없지만 사용 된 색상을 너무 많이 사용자 정의하는 것이 분명하지 않습니다.
macOS Catalina가 지금부터 zsh를 기본 셸로 요청함에 따라 더 많은 사람들이 프롬프트를 사용자 지정하고 싶을 수 있으며 답변을 위해 여기에 올 수 있습니다. 그래서 나는 더 넓은 요약을 제공하고 더 많은 사용자 정의를 허용하는 매우 밀접하게 관련된 다른 개념을 다루려고 노력할 것이라고 생각했습니다.
다양한 색상을위한 3 자리 코드.
우선, 여기에서 다양한 색상에 대한 3 자리 코드를 찾을 수 있습니다 : https://unix.stackexchange.com/a/124409/194343 . 예를 들어, 214는 일종의 주황색입니다.
전경 및 배경.
다른 주요 정보는 F oreground 및 bac K 바탕색에 대해 각각 F 및 K로 원하는 것을 정의 할 수 있다는 것 입니다. 소스는 시각 효과에 대한 zsh 매뉴얼입니다 : http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
예를 들어 다음 두 명령은
autoload -U colors && colors
export PS1="%F{214}%K{000}%m%F{015}%K{000}:%F{039}%K{000}%~%F{015}%K{000}\$ "
호스트 이름은 검은 색 바탕에 주황색으로 표시하고, 검은 색 바탕에 흰색으로 된 콜론, 검은 색 바탕에 밝은 파란색으로 표시된 현재 작업 디렉토리, 검은 색 바탕에 흰색으로 표시된 달러 기호를 표시합니다.
더 많은 관련 정보는 아래에서 찾을 수 있습니다.
오른쪽에 프롬프트 정보. 예를 들어 타임 스탬프를 추가합니다. https://superuser.com/a/1251045/290299를 참조 하십시오 . 물론, 예를 들어 다음과 같이 밝은 파란색 / 보라색을 띠는 색상으로 색상 코드를 지정할 수 있습니다.
RPROMPT="%F{111}%K{000}[%D{%f/%m/%y}|%@]"
색상에 대한 ls
. ls에 대한 설명서를 읽은 후 예를 들어 ls
다음 두 명령 을 사용하여 색상을 활성화 할 수 있습니다 .
export CLICOLOR=1
export LSCOLORS=gafacadabaegedabagacad
누군가가 포트를 설치하기 위해 마지막으로, 나는 내 구성을 행복으로 테스트되지 않았 음을 마지막 발언으로 또 다른 수단이 될 수 coreutils
에서 MacPorts를 다음 사용 gdircolors
: 소스 ( https://unix.stackexchange.com/a/174596 / 194343 ). (위의 모든 내용은 일상 생활을 훨씬 더 재미 있고 쉽게 처리 할 수있는 관련 항목이므로 나중에이 마지막 부분을 편집 할 수 있습니다.)
답변
zsh5 (Debian Jessie의 기본값)를 사용하면 모든 솔루션이 작동한다는 것을 알았습니다.
$'\e[00m
$fg[white]
$fg{white}
이제 문제가 있습니다. 커서를 움직여 탭할 때 (자동 완성을 위해)보기 흉한 데칼이 생깁니다. 해결책은 단순히 이스케이프 시퀀스를 %{FOOBAR%}
. 이것을 이해하는 데 시간이 걸렸습니다. 2 차 및 3 차 솔루션의 경우로드 colors
모듈이 필수입니다. 첫 번째 솔루션을 읽기 쉽게 유지하려면 사용하는 색상에 대한 변수를 정의하십시오.