From 849f4068de9831fdaa635c2372dada9131fb5a39 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 5 Mar 2002 16:33:19 +0000 Subject: 16767: Src/Zle/zle_hist.c, Doc/Zsh/zle.yo, Doc/Zsh/contrib.yo, Functions/Zle/copy-earlier-word: Enhance insert-last-word to pick different lines from the history (including the current line) and different words from that line. Add copy-earlier-word as suggested by Dominik Vogt to copy words from either the current line, or (following an insert-last-word) a previous history line. --- Functions/Zle/copy-earlier-word | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Functions/Zle/copy-earlier-word (limited to 'Functions') diff --git a/Functions/Zle/copy-earlier-word b/Functions/Zle/copy-earlier-word new file mode 100644 index 000000000..bbc8af35c --- /dev/null +++ b/Functions/Zle/copy-earlier-word @@ -0,0 +1,19 @@ +# Copy the word before the one you last copied --- call repeatedly +# to cycle through the list of words on the history line. +# +# Words in combination with insert-last-word to use the line reached, +# and start from the word before last. Otherwise, it will operate on +# the current line. + +if (( ${NUMERIC:-0} )); then + # 1 means last word, 2 second last, etc. + (( __copyword = ${NUMERIC:-0} )) +elif [[ -n $__copyword && $WIDGET = $LASTWIDGET ]]; then + (( __copyword-- )) +elif [[ $LASTWIDGET = *insert-last-word ]]; then + __copyword=-2 +else + __copyword=-1 +fi + +zle .insert-last-word 0 $__copyword -- cgit 1.4.1