zsh read 内置期间用于行编辑的箭头键

zsh read 内置期间用于行编辑的箭头键

我有一个小 zsh 脚本,用于提示用户输入一些内容:

#!/usr/bin/env zsh
IFS="$(printf "\n\t")"
printf "${1-query}: " 1>&2
read -r query
echo "${query}"

如果我在提示符下输入一些内容,然后尝试使用箭头键返回并编辑,我就会得到^[[D。我的TERM环境是xterm.如何让箭头键正常工作以进行行编辑,就像这是常规 zsh 命令行一样?

setopt如果其中任何一个相关,则输出如下:

emacs
noflowcontrol
histexpiredupsfirst
histfindnodups
histignorealldups
histignoredups
histsavenodups
histverify
incappendhistory
interactive
interactivecomments
monitor
nonomatch
promptsubst
shinstdin
zle

答案1

基于链接到的评论这个答案,我了解到vared。这是我使用的效果很好的:

#!/usr/bin/env zsh
IFS="$(printf "\n\t")"
query=
vared -p "${1-query}: " query 
echo "${query}"

相关内容