Thanks. vared will do. http://yost.com/computers/d Dave On Fri 2014-06-13, at 03:02 PM, Bart Schaefer 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.