Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: vared in scripts and history
- X-seq: zsh-users 8509
- From: Stephane Chazelas <Stephane@xxxxxxxxxxxxx>
- To: Zsh users list <zsh-users@xxxxxxxxxx>
- Subject: Re: vared in scripts and history
- Date: Tue, 15 Feb 2005 17:35:32 +0000
- In-reply-to: <1050215162654.ZM7648@xxxxxxxxxxxxxxxxxxxxxxx>
- Mail-followup-to: Zsh users list <zsh-users@xxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20050215131935.GA21734@xxxxxxxxxxxxxxx> <1050215162654.ZM7648@xxxxxxxxxxxxxxxxxxxxxxx>
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