mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # bracketed-paste-url-magic quotes pasted urls automatically, if the
 | |
| # paste exactly starts with a url, eg no spaces or other characters precede it
 | |
| #
 | |
| # If the numeric argument is provided (eg, pressing alt-0 or alt-1 in emacs mode,
 | |
| # or just the number by itself in vi command mode), then
 | |
| # 0 is the default and means auto detect urls
 | |
| # 1 means always quote
 | |
| # any other value means never quote
 | |
| #
 | |
| # To use this widget, put this in your startup files (eg, .zshrc)
 | |
| #
 | |
| # autoload -Uz bracketed-paste-url-magic
 | |
| # zle -N bracketed-paste bracketed-paste-url-magic
 | |
| #
 | |
| # You can customize which schemas are to be quoted by using
 | |
| #
 | |
| # zstyle :bracketed-paste-url-magic schema http https ftp
 | |
| #
 | |
| # The default can be seen just below.
 | |
| 
 | |
| local -a schema
 | |
| zstyle -a :bracketed-paste-url-magic schema schema || schema=(http:// https:// ftp:// ftps:// file:// ssh:// sftp:// magnet:)
 | |
| 
 | |
| local wantquote=${NUMERIC:-0}
 | |
| local content
 | |
| local start=$#LBUFFER
 | |
| 
 | |
| zle .$WIDGET -N content
 | |
| 
 | |
| if (( $wantquote == 0 )); then
 | |
|   if [[ $content = (${(~j:|:)schema})* ]]; then
 | |
|     wantquote=1
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if (( $wantquote == 1 )); then
 | |
|   content=${(q-)content}
 | |
| fi
 | |
| 
 | |
| LBUFFER+=$content
 | |
| 
 | |
| YANK_START=$start
 | |
| YANK_END=$#LBUFFER
 | |
| zle -f yank
 |