Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: vared in scripts and history



On Tue, Feb 15, 2005 at 04:26:54PM +0000, Bart Schaefer wrote:
> On Feb 15,  1:19pm, Stephane Chazelas wrote:
> } Subject: vared in scripts and history
> }
> } while a=; vared -p "$2" -e a; do
> } 
> } Now, I'd like to add some history support. But I couldn't have it to
> } work. Is there any way?
> 
> With 4.2.3:
> 
>     fc -p -a $HOME/.zfhistory 10 10
>     while a=; vared -h -p "$2" -e a; do
>       { ... } < $1
>       print -s "${(P)2}"
>     done

Thanks,

that was the "print -s" I was looking for. I thought vared would insert
the line by itself in the history list. Here is what I have, it replaces
the terminal line editor (that only supports <Backspace>, <Ctrl-U>,
<Ctrl-W> with zsh line editor (which supports arrows, Ctrl-A, history...
no need for readline anymore):

#! /usr/bin/env zsh
trap 'printf "\03"; exit' INT
HISTSIZE=100
while a=; vared -p "$2" -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"

To be run as a :exec filter withing screen (with .!. as first argument
to exec and "$(tty)" as first argument to the script.

-- 
Stephane



Messages sorted by: Reverse Date, Date, Thread, Author