1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-22 16:20:23 +02:00

16933: more sophisticated versions of these functions

This commit is contained in:
Oliver Kiddle 2002-04-04 11:59:08 +00:00
parent 41eb475f9b
commit 8ce654afb5
3 changed files with 32 additions and 16 deletions

View file

@ -1,13 +1,19 @@
# Like down-line-or-search, but uses the whole line prefix up to the
# cursor position for searching forwards.
if [[ $LASTWIDGET != $WIDGET ]]
if [[ ${+NUMERIC} -eq 0 &&
( $LASTWIDGET = $__searching || $RBUFFER != *$'\n'* ) ]]
then
if [[ $LBUFFER == *$'\n'* ]]
then
__last_down_line=down-line-or-history
else
__last_down_line=history-beginning-search-forward
fi
[[ $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
zle .${__last_down_line:-beep}
__searching=''
zle .down-line-or-history

View file

@ -1,13 +1,18 @@
# Like up-line-or-search, but uses the whole line prefix up to the
# cursor position for searching backwards.
if [[ $LASTWIDGET != $WIDGET ]]
if [[ $LBUFFER == *$'\n'* ]]; then
zle .up-line-or-history
__searching=''
elif [[ -n $PREBUFFER ]] &&
zstyle -t ':zle:up-line-or-beginning-search' edit-buffer
then
if [[ $LBUFFER == *$'\n'* ]]
then
__last_up_line=up-line-or-history
else
__last_up_line=history-beginning-search-backward
fi
zle .push-line-or-edit
else
[[ $LASTWIDGET = $__searching ]] && CURSOR=$__savecursor
__savecursor=$CURSOR
__searching=$WIDGET
zle .history-beginning-search-backward
zstyle -T ':zle:up-line-or-beginning-search' leave-cursor &&
zle .end-of-line
fi
zle .${__last_up_line:-beep}