我有一个键绑定要向上的一个目录(非常有用):
# C-M-u: up-directory
up-directory() {
builtin cd .. && zle reset-prompt
}
zle -N up-directory
bindkey '\e\C-u' up-directory它工作得很好,只是提示符没有真正重置。
例如,从Git (~/.dotfiles)开始:

在C-M-u之后,我得到:

所以,我很好地提升了一个级别(进入~),但是Git信息仍然存在--尽管不再有效--我不再在Git中了,…
怎么解决这个问题?
发布于 2020-07-21 15:26:26
您可能需要在重置提示符之前执行precmds。
fzf的zsh积分是这样做的:
# Ensure `precmds` are run after `cd`
fzf-redraw-prompt() {
local precmd
for precmd in $precmd_functions; do
$precmd
done
zle reset-prompt
}所以,试试这样的东西:
up-directory() {
builtin cd ..
if (( $? == 0 )); then
local precmd
for precmd in $precmd_functions; do
$precmd
done
zle reset-prompt
fi
}https://stackoverflow.com/questions/61075356
复制相似问题