【发布时间】:2018-09-14 05:45:15
【问题描述】:
我定义了以下小部件
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 后我被打断离开我的办公桌然后回来,我可能会忘记我做了什么)
如何让终端在按键后重绘提示?是否有 zle 函数来执行此操作?
【问题讨论】:
-
有一个小部件 (
clear-screen) 可以清除屏幕并重绘提示,但我没有看到只重绘提示的方法。