Mój RPROMPT
jest ustawiony do wyświetlania informacji o svn za pomocą vcs_info
. Czyta RPROMPT=${vcs_info_msg_0_}
. vcs_info
nazywa się za pomocą precmd()
. Jednak RPROMPT nie aktualizuje się, kiedy zmieniam katalogi. Działa tylko wtedy, gdy ponownie wywołam monit (przez source ~ / .zshrc lub monit) i nie zmieni się po chdir, chyba że ponownie wywołam monit. Czy istnieje sposób na zmianę tego zachowania?
11
setopt PROMPT_SUBST
miało to miejsce wcześniej w pliku. W przeciwnym razie będzie to dosłownie powtórzyć monit.Użycie pojedynczego cudzysłowu w celu opóźnienia oceny działa również w przypadku definiowania dynamicznych aliasów. Oto alias
t
służący do dołączenia nowej powłoki do istniejącego procesu agenta ssh, który został uruchomiony za pomocą aliasu,ssh-start
który wypisuje kod powłoki do pliku w katalogu głównym:Ta definicja
t
jest zła, ponieważ powodujessh-start
ignorowanie nowych informacji z nowej serii . Zmiana definicji aliasut
pojedynczego cytowania w moim pliku .zshrc zapewnia znacznie lepsze zachowanie:Zwróć uwagę na rozszerzenie definicji
t
podanej przezwhich t
, pokazujące skutki podwójnych cudzysłowów (natychmiastowe rozszerzenie poleceń lub zmiennych środowiskowych w miejscu) w porównaniu z pojedynczymi cudzysłowami (opóźniona ocena poleceń i zmiennych).źródło