我正在尝试创建一个简单的zsh小部件,它要求用户输入字符串,然后将其设置为当前命令提示符
zle -N replace-command-buffer
bindkey '\eg' replace-command-buffer
replace-command-buffer() {
local input
echo "Enter a string: "
read -r input
BUFFER="$input"
zle reset-prompt
}
但是读命令没有等待输入就立即返回。我该怎么解决这个问题?
1条答案
按热度按时间g52tjvyc1#
zle
执行的函数的标准输入从/dev/null
重定向,因此shell的标准输入不可用。您可能需要执行
recursive-edit
小部件,它将设置BUFFER
本身。