zsh 읽기 내장 중 줄 편집을 위한 화살표 키

zsh 읽기 내장 중 줄 편집을 위한 화살표 키

사용자에게 입력을 요청하는 작은 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}"

관련 정보