foxshell/fn/z4h-forward-word
2025-07-04 11:48:40 -05:00

19 lines
470 B
Bash

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