mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			741 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			741 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.
 | 
						|
 | 
						|
emulate -L zsh
 | 
						|
 | 
						|
if (( ${NUMERIC:-0} )); then
 | 
						|
  # 1 means last word, 2 second last, etc.
 | 
						|
  (( __copyword = ${NUMERIC:-0} ))
 | 
						|
  zstyle -s :$WIDGET widget __copywidget
 | 
						|
elif [[ -n $__copyword && $WIDGET = $LASTWIDGET ]]; then
 | 
						|
  (( __copyword-- ))
 | 
						|
elif [[ $LASTWIDGET = *insert-last-word ]]; then
 | 
						|
  __copyword=-2
 | 
						|
  __copywidget=$LASTWIDGET
 | 
						|
else
 | 
						|
  __copyword=-1
 | 
						|
  zstyle -s :$WIDGET widget __copywidget
 | 
						|
fi
 | 
						|
 | 
						|
zle ${__copywidget:-.insert-last-word} 0 $__copyword
 |