Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: up-line-or-search question
- X-seq: zsh-workers 16917
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- Subject: Re: up-line-or-search question
- Date: Wed, 27 Mar 2002 19:35:28 +0000
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <Pine.LNX.4.44.0203271004020.17952-100000@xxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20020327180029.GA20166@xxxxxxxxxx> <Pine.LNX.4.44.0203271004020.17952-100000@xxxxxxxxxxxxxxxx>
- Sender: Oliver Kiddle <kiddleo@xxxxxxxxxx>
On Wed, Mar 27, 2002 at 10:19:23AM -0800, Bart Schaefer wrote:
>
> Search up successfully, and then immediately try to search down again?
That now works. I probably had something messed up yesterday.
> E.g., change :predict to :zle:predict ?
Exactly.
> I wish we'd thought about that sooner ... it's not a bad idea, but it
> means changing predict-on, incremental-complete-word, etc. ... maybe
> we can use the excuse of differentiating complex stateful widgets from
> simple zle functions.
I would be inclined to change them anyway but if it worries you, we could
use something like:
zstyle -t :zle:predict verbose || zle -t :predict verbose
I've put the functions below in a recent form but without some of my
weirder additions. Suggestions on suitable shortenings for the style
contexts welcome. Or any other changes?
I've also added another bit to the up-line function which causes it
to still do an up-history if the search failed but we are not
currently in a search. This allows it to still be clear when a
search reaches it's end but it will still go up when searching isn't
going to do anything. Any views on this? Perhaps it also needs
a style. Note that a corresponding change to the down function
would be needed.
Oliver
up-line-or-beginning-search() {
[[ $LASTWIDGET != $__searching ]]
local insearch=$?
if [[ $LBUFFER == *$'\n'* ]]; then
zle .up-line-or-history
__searching=''
elif [[ -n $PREBUFFER ]] &&
zstyle -t ':zle:up-line-or-beginning-search' edit-buffer
then
zle .push-line-or-edit
else
(( insearch )) && CURSOR=$__savecursor
__savecursor=$CURSOR
__searching=$WIDGET
if ! zle .history-beginning-search-backward && (( ! insearch )); then
zle .up-history
CURSOR=0
fi
zstyle -T ':zle:up-line-or-beginning-search' leave-cursor &&
zle .end-of-line
fi
}
down-line-or-beginning-search() {
if [[ ${+NUMERIC} -eq 0 &&
( $LASTWIDGET = $__searching || $RBUFFER != *$'\n'* ) ]]
then
[[ $LASTWIDGET = $__searching ]] && CURSOR=$__savecursor
__searching=$WIDGET
__savecursor=$CURSOR
if zle .history-beginning-search-forward; then
[[ $RBUFFER = *$'\n'* ]] ||
zstyle -T ':zle:down-line-or-beginning-search' leave-cursor &&
zle .end-of-line
return
fi
[[ $RBUFFER = *$'\n'* ]] || return
fi
__searching=''
zle .down-line-or-history
}
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author