Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: shell script that replaces the command line
Thanks.
vared will do.
http://yost.com/computers/d
Dave
On Fri 2014-06-13, at 03:02 PM, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> On Jun 13, 2:34pm, Dave Yost wrote:
> }
> } but there must be a way to replace the current command line rather
> } than setting the contents of the next one, yes?
>
> Not from outside a widget, no. Only widget functions have access to
> the current editor state.
>
> But I'm not clear on why you need to do so? In your original example,
> the "d" function would just "print -z previously-backgrounded-command"
> and then exit, at which point a new prompt would appear and pop the
> buffer stack so you'd have "previously-backgrounded-command" sitting
> there ready to edit.
>
> What part of the flow am I not seeing?
>
> If what you want is for "d" to present a line for editing, wait for the
> editor, and then continue execution after the editor returns, then what
> you want is to call the "vared" command from "d".
>
> example_d() {
> local foo="echo this is the command to edit"
> vared -e -h -p "Do your editing: " foo && eval $foo
> }
>
> There are a bunch of options to vared to manipulate the state in which
> the editor starts/runs.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author