答案1
确保prompt_subst
选项已打开。如有必要,请将以下行添加到您的~/.zshrc
:
setopt prompt_subst
这告诉 zsh 每次显示提示时重新评估提示字符串。然后,确保您PS1
根据需要进行分配(或提示主题使用的其他变量):
PS1='${PWD/#$HOME/~}'
单引号可以保护特殊字符,例如$
在设置变量时不被计算。
答案2
在 zsh 中,在precmd
每个提示之前可以执行任何操作(例如设置变量):
function precmd() {
current_git_branch=`git rev-parse --abbrev-ref HEAD`
}
http://zsh.sourceforge.net/Doc/Release/Functions.html
对于当前目录来说,这并不像原始问题那样必要,但对于在其他情况下找到此问题的人可能会有所帮助。
(precmd 仅限 zsh — 在 bash 中,有$PROMPT_COMMAND
.)
答案3
好的,
我只需要逃避我的$
迹象。例如:
${PWD/#$HOME/~}
\${PWD/#\$HOME/~}
答案4
在 zsh 中,您应该%
为此使用转义符。例如,而不是${PWD/#$HOME/~}
(如您的示例),只需使用%~
.
阅读zshall(1)
并寻找简单快捷的逃脱(这里引用太长了)。