Как сделать RPROMPT в самом обновлении zsh при каждом входе?

Мой RPROMPT настроен на отображение информации svn с помощью vcs_info . Он читает RPROMPT=${vcs_info_msg_0_} . vcs_info вызывается с помощью функции precmd() . Однако при изменении каталогов RPROMPT не обновляется. Он работает только в том случае, если я снова вызываю приглашение (либо из источника ~ / .zshrc или prompt), либо не изменяется на chdir, если я снова не вызову приглашение. Есть ли способ изменить это поведение?

2 Solutions collect form web for “Как сделать RPROMPT в самом обновлении zsh при каждом входе?”

Попробуйте поставить одинарные кавычки вокруг значения переменной при назначении для оценки задержки:

 RPROMPT='${vcs_info_msg_0_}' 

Использование однокристальной программы для оценки задержки также позволяет определить динамические псевдонимы. Вот псевдоним, t , используемый для присоединения новой оболочки к существующему процессу агента ssh, который был запущен с псевдонимом ssh-start который выписывает код оболочки в файл в homedir:

 mymistress:~> which ssh-start ssh-start: aliased to eval `ssh-agent | tee ~/.ssh/ssh-agent.out` ; ssh-add ~/.ssh/id_rsa mymistress:~> grep "alias t" .zshrc alias t="eval `cat ~/.ssh/ssh-agent.out`" mymistress:~> which t t: aliased to eval SSH_AUTH_SOCK=/tmp/ssh-nZBZp29804/agent.29804; export SSH_AUTH_SOCK;\nSSH_AGENT_PID=29805; export SSH_AGENT_PID;\necho Agent pid 29805;` 

Это определение t плохо, потому что это приводит к игнорированию новой информации из нового запуска ssh-start . Изменение определения псевдонима t которое будет указано отдельно в моем .zshrc, дает гораздо лучшее поведение:

 mymistress:~> grep "alias t" .zshrc alias t='eval `cat ~/.ssh/ssh-agent.out`' mymistress:~> source ~/.zshrc mymistress:~> which t t: aliased to eval `cat ~/.ssh/ssh-agent.out` 

Обратите внимание на разложение определения t как показано на рисунке which t , показывающее влияние двойных кавычек (немедленное расширение команд или переменных среды на месте) по сравнению с одинарными кавычками (отложенная оценка команд и переменных).

  • Портативный способ получить абсолютный путь скрипта?
  • Передача glob-выражений в функции / скрипты
  • zsh отказывается принять новый сценарий автозаполнения
  • oh-my-zsh не может угадать правильную команду
  • Escape filepath
  • Как управлять конфигурациями на нескольких компьютерах и оболочках?
  • Запуск одной команды за другой в zsh при нажатии Ctrl-C
  • Передача команды с аргументами скрипту
  • Что делает «текст» точно в Bash? Может ли он использоваться в Zsh?
  • В zsh как я могу перечислить все переменные среды?
  • Почему мой вывод не завершается в tmux?
  • Linux и Unix - лучшая ОС в мире.