我定义了以下小部件
function cdd()
{
cd /
}
zle -N cdd{,}
bindkey "^R" cdd
按下组合键后,cwd已更改,但终端提示未更新。示例,执行完此()之后
~/tmp/todelete$ | # press key ^R here; "~$" is the prompt; "|" denotes cursor
终端保持不变。如果再输入
ls -ld .
,则显示~/tmp/todelete$ ls -ld .
dr-xr-xr-x 23 root root 4096 Sep 14 07:52 ./
/$ |
这意味着
cwd
运行时的ll
已经是/
。这是非常困惑的,并可能导致严重的错误。 (例如,如果在按下
^R
之后我被打扰离开我的办公 table ,然后又回来,我可能会忘记所做的事情)按下键后如何让终端重绘提示?是否有
zle
函数可以做到这一点? 最佳答案
reset-prompt
可以营救:
function cdd()
{
cd /
zle reset-prompt # XXX: added
}
关于zsh:运行zle小部件后刷新提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52325626/