My RPROMPT
настроен на отображение информации SVN с помощью vcs_info
. Это читает RPROMPT=${vcs_info_msg_0_}
. vcs_info
называется использованием precmd()
. Тем не менее, RPROMPT не обновляется, когда я меняю каталоги. Он работает только в том случае, если я снова вызываю подсказку (либо по источнику ~ / .zshrc или подсказке), и не изменяется в chdir, если я не вызываю подсказку снова. Есть ли способ изменить это поведение?
11
setopt PROMPT_SUBST
это произошло ранее в файле. В противном случае, это будет буквально повторять подсказку.Использование одинарной кавычки для задержки оценки работает и для определения динамических псевдонимов. Вот псевдоним,
t
используемый для присоединения новой оболочки к существующему процессу агента ssh, который был запущен с псевдонимом,ssh-start
который записывает код оболочки в файл в homedir:Это определение
t
является плохим, потому что оно приводит к тому, что новая информация из новой серииssh-start
игнорируется. Изменение определения псевдонимаt
для одиночной кавычки в моем .zshrc дает намного лучшее поведение:Обратите внимание на расширение определения, представленного
t
какwhich t
, показывающее влияние двойных кавычек (немедленное расширение на месте команд или переменных среды) по сравнению с одинарными кавычками (отложенная оценка команд и переменных).источник