我有一个小 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}"