about summary refs log tree commit diff
path: root/Functions/Zle/cycle-completion-positions
blob: 34a2d81744777a9e59c386543928169166043ab1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# This may be called after a completion that inserted the unambiguous
# (i.e. non-menu- and non-single-match-) string into the command line.
# If there are multiple positions in the string with missing or differing
# characters, repeatedly calling this widget cycles between all these
# positions.

emulate -L zsh
setopt extendedglob

local p="$_lastcomp[insert_positions]"

if [[ $p = ((#s)|*:)${CURSOR}:* ]]; then
  CURSOR=${${p#(|*:)${CURSOR}:}%%:*}
elif [[ -n $p ]]; then
  CURSOR=${p%%:*}
fi