PS1 (Zsh)에 기능을 가져 오시겠습니까? parse_git_branch정의 된 함수입니다) export PS1=”\$(parse_git_branch)” 그러나에서 동등한 것을 알아낼

이것은 작동합니다 bash( parse_git_branch정의 된 함수입니다)

export PS1="\$(parse_git_branch)"

그러나에서 동등한 것을 알아낼 수는 없습니다 zsh.

참고 : 내가 할 경우

PROMPT="$(parse_git_branch)"

작동하는 것처럼 보이지만 실제로 프롬프트를 설정할 때 명령을 실행하고 있습니다.



답변

당신은 포함해야합니다

setopt PROMPT_SUBST

당신에 .zshrc, man zshall에 대해 설명 PROMPT 확장 섹션 :

PROMPT_SUBST 옵션을 설정하면 프롬프트 문자열에 먼저 매개 변수 확장, 명령 대체 및 산술 확장이 적용됩니다.


답변

실제로 문제는 설정이 아니라 PROMPT_SUBST스크립트에서 PROMPT변수 를 설정할 때 함수를 강제로 큰 따옴표로 묶는 것 입니다. 작은 따옴표를 사용해야한다는 프롬프트가 계산 될 때만 평가를 원합니다.


답변

아키라가 말했듯이 프롬프트 subst를 사용해야합니다. 이것은 내 초기 코드입니다 (여전히 작업 중).

setopt PROMPT_SUBST
PROMPT='$(parse_git_branch)'

또는 더 나은

setopt PROMPT_SUBST
PROMPT='[$PR_MAGENTA%n$PR_NO_COLOR@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]$(parse_git_branch) %(!.#.$)'