В приглашении отображается неожиданный путь

#zsh

#zsh

Вопрос:

Приглашение с отображением неожиданного пути

В оболочке zsh (удаленная оболочка) я вижу, что с правой стороны отображается неожиданный путь. У меня нет такого компонента в переменной приглашения. Что может быть причиной?

 function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^* (.*)/[1]/p'
}

setopt PROMPT_SUBST

export PROMPT='[dev] %~ $(parse_git_branch)
# '

  

Комментарии:

1. Если я вас правильно понимаю, вам интересно, почему $~ не выводит ваш рабочий каталог. Чтобы сосредоточиться на этой проблеме, попробуйте приглашение, в котором есть только эта запись, потому что другие части, похоже, здесь не имеют значения. Я бы также сделал явный setopt PROMPT_PERCENT , хотя я бы ожидал, что это значение по умолчанию в любом случае. Обратите внимание, что вы можете легко протестировать свои подсказки и без явного изменения PROMPT переменной, выполнив print -P promptstring , например print -P '%~' .

2. Кроме того, используйте git branch --show-current вместо синтаксического анализа выходные данные git branch .

3. Кроме того, выполните поиск man zshcontrib по vcs_info , который покажет вам, как настроить приглашение для отображения большого количества информации VCS без необходимости явного вызова каких-либо git команд напрямую.

4. Проверьте, установлен ли RPROMPT или RPS1 .

5. @chepner, спасибо! Проблема была решена после сброса RPROMPT

Ответ №1:

Приглашение в правой части терминала отображается в zsh, если заданы переменные RPROMPT или RPS1 . Проверьте, установлены ли они с помощью выполнения echo $RPROMPT или echo $RPS1 . Если один (или оба) не является пустым, то возможно, что он устанавливается где-то еще.

Добавьте строки export RPROMPT='' и export RPS1='' в конец файла ~/.zshrc .