Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: History expansion surprisingly sets event designator

Peter Stephenson <p.stephenson@xxxxxxxxxxx> writes:

> On Tue, 6 Jun 2017 17:50:03 +0200
> Leah Neukirchen <leah@xxxxxxxx> wrote:
>> Hi,
>> on #zsh we discovered:
>> zsh 5.3.1 (x86_64-unknown-linux-gnu)
>> zsh-5.3.1-0-g06b1b7a    (and zsh-5.3.1-204-g62c4169, via danielsh)
>> % zsh -f
>> juno% printf a b c
>> a%
>> juno% echo x y z
>> x y z
>> juno% echo !printf:2<TAB><DEL>!:3<RET>
>> c
>> The first tab expansion will correctly expand to "b", but it changes
>> the event designator to the printf-line, resulting in !:3 expanding to "c",
>> while the typed in line "echo !:3" itself would refer to the previous
>> line, the echo-line, and should result in "z".
>> (Same for tab-expanding the second history reference.)
>> Pressing ^U will not reset this, but pressing ^C will.
> Yes, that's how it works.  I haven't understood why you think it's a
> problem but I presume you're used to some other shell.

If my command line is "echo !:3" before pressing RET, it should always
print z, even if I fiddled around with tab expansion during editing.
I think this is quite confusing as-is.

Leah Neukirchen  <leah@xxxxxxxx>  http://leah.zone

Messages sorted by: Reverse Date, Date, Thread, Author