As initially submitted at https://github.com/zsh-users/zsh/pull/116
:
As
mentioned in the code comment:
# 1 means last word, 2 second last, etc.
the
numeric argument is supposed to be interpreted as an offset from the
end.
The
intended behavior is a lot more useful than the current behavior.
diff --git
a/Functions/Zle/copy-earlier-word b/Functions/Zle/copy-earlier-word
index
90e862da3..1262c0c82 100644
---
a/Functions/Zle/copy-earlier-word
+++
b/Functions/Zle/copy-earlier-word
@@ -11,7 +11,7 @@ setopt
typesetsilent
typeset -g __copyword
if (( ${NUMERIC:-0} ));
then
# 1 means last word, 2
second last, etc.
- (( __copyword =
${NUMERIC:-0} ))
+ (( __copyword =
-${NUMERIC:-0} ))
zstyle -s :$WIDGET
widget __copywidget
elif [[ -n $__copyword
&& $WIDGET = $LASTWIDGET ]]; then
(( __copyword-- ))