ZSH에서 프롬프트 색상을 어떻게 변경하려면 (일반 텍스트와 다름)?

StackOverflow https://stackoverflow.com/questions/689765

  •  22-08-2019
  •  | 
  •  

문제

명령 라인에서 출력의 시작과 끝을 더 잘 인식하려면 프롬프트의 색상을 변경하여 프로그램 출력과 눈에 띄게 다릅니다. 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%}%% "

지원되는 색상 :
빨간색, 파란색, 녹색, 청록색, 노란색, 마젠타, 흑백 ( 이 답변) 다른 컴퓨터마다 다른 유효한 옵션이있을 수 있지만.

컬러 코드 (및 인쇄 할 수없는 다른 숯) %{....%}. 이것은 텍스트 포장이 올바르게 작동하는 것입니다.

또한 다음은 디렉토리 트리밍과 함께 작동하는 방법이 있습니다. 여기.

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "

ZSH에는 Colored Prompts가 내장되어 있습니다. 노력하다

autoload -U promptinit && promptinit

그리고 prompt -l 사용 가능한 프롬프트 목록, -p fire "화재"프롬프트를 미리 봅니다. -s fire 설정합니다.

프롬프트를 추가 할 준비가되면 위의 자동로드 라인 아래에 이와 같은 것을 추가하십시오.

prompt fade red

나는 생각하지 않는다 autoload -U colors && colors 더 이상 필요하며 단순히 할 수 있습니다.

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

동일한 결과를 얻으려면 Firedude의 답변. 참조 ZSH 문서 더 많은 정보를 위해서.

ZSH5 (Debian Jessie의 기본값)와 함께 모든 솔루션이 작동한다는 것을 알았습니다.

  • $'\e[00m
  • $fg[white]
  • $fg{white}

이제 그들은 문제가 있습니다 : 그들은 커서를 움직여서 탭할 때 (자동 완성을 위해) 추악한 데칼을 만듭니다. 솔루션은 단순히 탈출 시퀀스를 %{FOOBAR%}. 이것을 알아내는 데 시간이 걸렸습니다. 2 차 및 세 번째 솔루션 로딩 colors 모듈은 필수입니다. 첫 번째 솔루션을 읽을 수 있도록하려면 사용하는 색상의 변수를 정의하십시오.

Man Zshall과 신속한 확장을 검색하십시오

여기에서 기존 답변을 읽은 후에는 그 중 일부가 상충됩니다. 나는 ZSH 4.2 및 5+를 실행하는 시스템에 대한 다양한 접근법을 시도했지만 이러한 답변이 상충되는 이유는 그들이 어떤 버전의 ZSH를 대상으로하는지 말하지 않기 때문입니다. 다른 버전마다 다른 구문을 사용하고 일부는 다양한 자동 부로가 필요합니다.

따라서 가장 좋은 방법은 아마도 Zshall을 Man Zshall을 검색하고 ZSH의 특정 설치에 대한 모든 규칙을 찾기 위해 신속한 확장을 검색하는 것입니다. 주석에서 "나는 Ubuntu 11.04 또는 10.4 또는 OSX를 사용하는 것"과 같은 것들이 어떤 ZSH를 사용하고 있는지 불분명하기 때문에 그다지 의미가 없습니다. Ubuntu 11.04는 Ubuntu 10.04보다 새로운 버전의 ZSH를 암시하지 않습니다. 이전 버전이 설치된 이유는 여러 가지가있을 수 있습니다. 그 문제에 대해 ZSH의 최신 버전은 어떤 버전의 ZSH인지 모르면 어떤 구문을 사용할지 암시하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top