Zsh Mailing List Archive
Messages sorted by:
- X-seq: zsh-workers 4020
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxx>
- To: Andy Wick <awick@xxxxxxxxxxxxxxx>, zsh-workers@xxxxxxxxxxxxxxx
- Subject: Re: up-line-or-search
- Date: Mon, 1 Jun 1998 09:29:32 -0700
- In-reply-to: <19980601081357.58829@xxxxxxxxxxxxxxx>
- References: <19980601081357.58829@xxxxxxxxxxxxxxx>
On Jun 1, 8:13am, Andy Wick wrote:
} Subject: up-line-or-search
} If you comment out line 376 of Zle/zle_hist.c
} iblank(s[histmpos] == Meta ? s[histmpos+1]^32 : s[histmpos]) &&
} up-line-or-search will kind of work, which is better then not
I just downloaded and unpacked the 3.1.4 tarfile, and I have that code
on line 390, not 376. So you may want to check the state of your
sources. (This does not appear to be the reason for the problem.)
} What it still does with that line commented out is forget
} the orginal string typed in, and uses the last string found each
} time you hit up arrow.
This is all the result of the change in history-search-backward, which
causes it not to match word prefixes. In my freshly-built copy of 3.1.4,
I can't even perform the search you describe here:
} (Previous Commands)
} %lss -d
} %ls -l
} Now if I do
} it finds "ls"
When I do that, I get a beep, because there is no previous command where
`l' is the entire first word. If I do "ls<uparrow>" I get "ls -l", having
entirely skipped "lss". Repeated <uparrow> correctly finds other uses of
ls, skipping lss.
Now, I've never been terribly happy with the change to require full word
matching in history-search-backward, and the fact that it has rippled
through to change the way other commands behave makes it even more of an
annoyance. However, I can't decide if this is actually a bug. The doc
Move up a line in the buffer, or if already at the top line, search
backward in the history for a line beginning with the first word
in the buffer.
Neither there nor under history-search-backward does it say "a line whose
first word is the same as the first word in the buffer" but I suppose the
reference to "the first word" is supposed to imply that. So perhaps the
command is working correctly but the doc is unclear.
} I'll buy someone a pizza if they just fix this for me, I really
} want to upgrade to 3.1.x, but can't without my favorite feature.
In zle_hist.c, in uplineorsearch(), call historybeginningsearchbackward()
instead of historysearchbackward() and I believe you'll get what you want.
How or whether Zefram intends to deal with this is another matter.
Bart Schaefer Brass Lantern Enterprises
Messages sorted by: