mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	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.
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			601 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			601 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| # 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
 |