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