diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-04-02 13:02:47 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-04-02 13:02:47 +0000 |
commit | 374b31616bbfad23f980f35d79a4202afb7367e8 (patch) | |
tree | 440f48096773d8383d1be6bda37d2821ccb03127 /Functions/Zle/match-word-context | |
parent | 93fce8372d8a7fd0423f9683c443bf05cecd6378 (diff) | |
download | zsh-374b31616bbfad23f980f35d79a4202afb7367e8.tar.gz zsh-374b31616bbfad23f980f35d79a4202afb7367e8.tar.xz zsh-374b31616bbfad23f980f35d79a4202afb7367e8.zip |
24781: enhance word-context to use next or previous word
Diffstat (limited to 'Functions/Zle/match-word-context')
-rw-r--r-- | Functions/Zle/match-word-context | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/Functions/Zle/match-word-context b/Functions/Zle/match-word-context index da68b6c75..7f1154498 100644 --- a/Functions/Zle/match-word-context +++ b/Functions/Zle/match-word-context @@ -6,7 +6,7 @@ emulate -L zsh setopt extendedglob local -a worcon bufwords -local pat tag lastword word +local pat tag lastword word backword forword integer iword zstyle -a $curcontext word-context worcon || return 0 @@ -23,21 +23,18 @@ bufwords=(${(z)BUFFER}) if [[ $lastword = ${bufwords[iword]} ]]; then # If the word immediately left of the cursor is complete, - # we're not on it. Either we're on unquoted whitespace, or - # the start of a new word. Test the latter. - if [[ -z $RBUFFER ]]; then - # Nothing there, so not in a word. - word='' - elif [[ $RBUFFER[1] = [[:space:]] ]]; then - # Whitespace, so not in a word. - word=' ' - else - # We want the next word along. - word=${bufwords[iword+1]} - fi + # we're not on it for forward operations. + forword=${bufwords[iword+1]} else # We're on a word. - word=${bufwords[iword]} + forword=${bufwords[iword]} +fi +backword=${bufwords[iword]} + +if [[ $curcontext = *back* ]]; then + word=$backword +else + word=$forword fi for pat tag in "${worcon[@]}"; do |