zsh의 라인 편집기를 사용하여 서브 프로세스 둘러보기 읽는 프로그램입니다. zle의 라인

zsh의 내장 라인 편집기 ( zle)를 사용하여 서브 프로세스에 입력을 공급할 수 있습니까? 즉, zsh 함수가있는 zlewrap mycommand곳 에서 stdin에서 행을 읽는 프로그램입니다. zle의 라인 편집 기능을 효과적으로 제공합니다 . 이것은 단지 이것을 수행 하는 모델에 있지만 라인 편집을 위해 zle이 아닌 readline을 사용합니다.zlewrapmycommandzlewrapmycommandrlwrap



답변

GNU 화면을 사용하는 방법은 다음과 같습니다.

라는 파일을 넣어 zf당신에 $PATH와를 :

#! /usr/bin/env zsh
zmodload -i zsh/zle
trap 'printf "\03"; exit' INT
HISTSIZE=100
while a=; vared -p "${2:-zle> }" -eh a; do
{
  s=$(stty -g)
  stty -echo -iexten -isig lnext '' werase '' eof '' rprnt '' kill ''
  printf "%s\r" "$a"
  print -rs -- "$a"
  stty "$s"
} < $1
done
printf "\04"

그런 다음 화면에서 필터를 다음과 같이 실행하십시오.

<Ctrl-A>:exec .!. zf /dev/pts/x "> "

/ dev / pts / x를 실제 Windows pty ( tty창의 명령 출력)로 바꾸고 표시 할 프롬프트로 “>”를 바꾸십시오.

zsh와 응용 프로그램이 모두 인증되지 않은 방식으로 터미널에 쓰므로 가끔씩 디스플레이 결함이 발생합니다.

http://www.zsh.org/mla/users/2005/msg00186.html의 원본


답변