Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: append to history entry?
Ray Andrews wrote on Wed, Dec 28, 2016 at 13:24:25 -0800:
> On 28/12/16 11:20 AM, Ray Andrews wrote:
> >Ok, I'll see what I can figure out.
>
> Needless to say this is exploratory:
>
>
> function zshaddhistory ()
> {
> LITERAL=( "${(@s/;/)1}" )
⋮:
> ... but it seems to do exactly what I want the only thing lacking is
> to associate each member of the array to the appropriate command, if
> there are several on the same line. I can think of a few hacks that
> might do it, but is there a robust way? Would precmd() be able to
> keep count? Something of that nature? This is going to come out
> right.
You can easily convert the string "$1" to a token stream, however, there
is no fully robust way to translate that token stream into a list of
commands without reimplementing the parser.
Just consider the following cases (there are more, but you should get
the gist):
# quoted semicolon
echo lorem\;ipsum
# non-top-level semicolon
(foo; bar); baz
() { foo; bar } baz
for 1 in foo bar; baz $1
# non-semicolon
foo& bar&
case foo in (bar) : ;; esac
# INTERACTIVE_COMMENTS
echo foo # bar ;
What are you trying to do now? This is no longer your original
question about recording the hostname in history.
Is this about 'rap' being called in the middle of a command line…?
Cheers,
Daniel
Messages sorted by:
Reverse Date,
Date,
Thread,
Author