我有以下的小部件定义:
这意味着在运行
function cdd()
{
cd /
}
zle -N cdd{,}
bindkey "^R" cdd
按下键组合后,当前工作目录已经更改,但终端提示符未更新。例如,在执行此操作后(())
~/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 ./
/$ |
这意味着在运行
ll
命令时的cwd
已经是/
了。
这很容易让人产生困惑,可能会导致严重错误。(例如,如果我按下^R
后被打断离开我的桌子,然后回来时可能会忘记我做了什么)
我怎样才能让终端在按键后重新绘制提示符?是否有zle
函数可以做到这一点?
clear-screen
)可以清除屏幕并重新绘制提示符,但我没有看到仅重新绘制提示符的方法。 - chepner