프롬프트 확장을 수행하는 zsh 프롬프트 스크립트가 있습니다 print -P
. SSH를 통해 접속한 특정 원격 시스템에서는 스크립트가 제대로 작동하지 않습니다. 팁: 인쇄 명령의 색상 지시문은 확장되지 않습니다.
$ print -P '%F{blue}this should be blue'
{blue} this should be blue
해결책이 있나요? 디스플레이가 내 로컬 터미널 에뮬레이터(iTerm2)를 통해 이루어지기 때문에 원격 시스템을 사용하는 것이 왜 중요한지 잘 모르겠습니다.
답변1
문제는 버전이 zsh
4.3.6이라는 것입니다. ~에 따르면릴리즈 노트, %F
힌트에 대한 색상 확장 기능은 5.0까지 추가되지 않았습니다(여기의 릴리스 노트는 100% 명확하지 않지만 어떤 경우에도 힌트 확장 문서가 포함된 4.3.6 맨페이지 %F
에는 없습니다 ). zshmisc
혼란스럽게도 %F
여전히 형식 문자열에서 제거됩니다(아무 작업도 수행하지 않음). 매개변수(색상 이름 또는 중괄호 안의 숫자)만 영향을 받지 않습니다. %F{color}
프롬프트 형식 문자열의 문자열을 다음으로 대체하여 이 작업을 수행할 수 있었습니다.ANSI 이스케이프 코드(예: 및 %F{blue}
로 변경 , 색상 재설정, 로 변경 )\e[34m
%f
\e[0m