19 lines
474 B
Bash
19 lines
474 B
Bash
#!/usr/bin/env zsh
|
|
|
|
emulate -L zsh -o extended_glob
|
|
local buf w=${WORDCHARS//[[:space:][:alnum:]]}
|
|
repeat ${NUMERIC:-1}; do
|
|
buf=${LBUFFER%%[[:space:]]#}
|
|
if (( $#buf < 2 )); then
|
|
buf=
|
|
elif [[ $buf == *[[:space:]]? ]]; then
|
|
buf[-1]=
|
|
elif [[ $buf[-2,-1] != *[[:alnum:]$w]* ]]; then
|
|
buf=${buf%%[^[:space:][:alnum:]$w]#}
|
|
else
|
|
[[ $buf == *[[:alnum:]$w] ]] || buf[-1]=
|
|
buf=${buf%%[[:alnum:]$w]#}
|
|
fi
|
|
(( CURSOR -= $#LBUFFER - $#buf ))
|
|
done
|
|
return 0
|