zsh 프롬프트의 bg 색상 재정의

zsh 프롬프트의 bg 색상 재정의

사용중인데 zsh설치 가 prompt fade안되어있습니다 .oh-my-zsh

내 터미널 배경은 검정색이 아닌 진한 파란색이지만 프롬프트는 검정색 배경에 인쇄됩니다.

프롬프트가 터미널의 나머지 부분과 동일한 배경색을 사용하도록 이를 어떻게 무시할 수 있습니까?

FWIW, 올바른 배경색을 RPS1설정 하고 사용했습니다..zshrc

RPS1='[%F{yellow}%?%f] '

답변1

zsh배경색이나 전경색은 요청하지 않는 한 변경되지 않습니다.

따라서 프롬프트 배경이 기본 색상이 아닌 경우 이는 사용자 또는 활성화한 일부 프롬프트 테마 또는 타사 사용자 정의 확장이 해당 배경을 기본 색상으로 구성했기 때문입니다.

%K{colour}프롬프트 확장에서 배경색은 및 %k( 와 동일 )로 변경되지만 %K{default}대부분의 터미널에서 $'%{\e[40;37;1m%}foo%{\e[m%}'검정색 바탕에 흰색 과 같이 하드 코딩된 이스케이프 시퀀스를 삽입하여 변경할 수도 있습니다.foo

그리고 %S단지눈에 띄다모드(중지 %s), 대부분의 터미널에서 이 모드는 역방향 비디오(배경색과 전경색 교체)를 사용하여 수행됩니다.

따라서 기본 배경색을 유지하려면 변수 정의 $PS1에서 해당 배경색을 제거해야 합니다.$PROMPT

또한 promptsubst이 옵션이 활성화되어 있고 또는 같은 항목을 $PS1포함 하면 확장하라는 메시지가 표시될 때 확장되므로 거기에 있는 색상 변경 순서에도 주의해야 합니다.$(some command)${some_variable}

fade프롬프트 테마를 사용하고 있음을 나타냅니다 . $PS1기본적으로 이 테마의 변수는 다음과 같습니다.

%F{green}%B%K{green}█▓▒░%F{white}%K{green}%B%n@%m%b%F{green}%K{black}█▓▒░%F{white}%K{black}%B %D{%a %b %d} %D{%I:%M:%S%P}
%}%F{green}%K{black}%B%~/%b%k%f

함수나 실행의 정의를 %K{black}보면 색상 이 사용자 정의할 수 있는 범위의 일부가 아니라는 것을 알 수 있습니다. 따라서 검은 배경이 마음에 들지 않으면 다음을 수행할 수 있습니다.prompt_fade_setupprompt -h fade

  • 다른 테마로 전환
  • 이 테마를 기반으로 자신만의 프롬프트 테마를 만듭니다( info zsh "prompt themes"자세한 내용은 참고자료 참조).
  • 귀하의 계정에 추가한 PS1=${PS1//\%K{black}/%k}prompt fade~/.zshrc
  • 를 사용하지 말고 prompt fade해당 PS1변수 정의를 변수 ~/.zshrc정의에 복사하고 %K{black}로 바꾸십시오 %k.

관련 정보