emulate -L zsh setopt extendedglob autoload match-words-by-style local curcontext=":zle:$WIDGET" word done local -a matched_words integer count=${NUMERIC:-1} if (( count < 0 )); then (( NUMERIC = -count )) zle backward-$WIDGET return fi while (( count-- )); do match-words-by-style word="${(j..)matched_words[4,5]}" if [[ -n $word ]]; then if [[ -n $done || $LASTWIDGET = *kill* ]]; then CUTBUFFER="$CUTBUFFER$word" else killring=("$CUTBUFFER" "${(@)killring[1,-2]}") CUTBUFFER=$word fi RBUFFER=$matched_words[6] else return 1 fi done=1 done return 0