Получить функцию в PS1 (Zsh)?

Это работает в bash (parse_git_branch определенная функция),

export PS1="\$(parse_git_branch)"

Но я не могу выяснить эквивалент в zsh.

Примечание: Если я делаю

PROMPT="$(parse_git_branch)"

Это, кажется, работает, но на самом деле это выполняет команду, когда я установил подсказку, которая не является точкой.

14
задан 29.09.2016, 11:36

2 ответа

Необходимо включать

setopt PROMPT_SUBST

в Вашем .zshrc, man zshall объясняет это в разделе PROMPT EXPANSION:

Если опция PROMPT_SUBST установлена, строка приглашения сначала подвергается расширению параметра, замене команды и арифметическому расширению.

24
ответ дан 07.12.2019, 11:12

Как akira говорит, необходимо использовать подсказку 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) %(!.#.$)'
5
ответ дан 07.12.2019, 11:12

Теги

Похожие вопросы