1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-27 16:50:58 +01:00

36692: bracketed-paste-url-magic: simpler alternative for handling pasted urls

This commit is contained in:
Mikael Magnusson 2015-10-01 03:52:16 +02:00
parent a855d7bd24
commit 76da752fd7
2 changed files with 45 additions and 0 deletions

View file

@ -5,6 +5,9 @@
zle -f from inside widget to set flags and make yank start/end
zle params writable.
* 36692: Functions/Zle/bracketed-paste-url-magic: simpler
alternative for handling pasted urls
2015-09-30 Daniel Shahaf <d.s@daniel.shahaf.name>
* 36725: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:

View file

@ -0,0 +1,42 @@
# 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 override the url detection
# and if it was 0, never quote, and if it was 1, always 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)
local wantquote=${NUMERIC:-0}
local content
local start=$#LBUFFER
zle .$WIDGET -N content
if ! (( $wantquote )); then
if [[ $content = (${(~j:|:)schema})://* ]]; then
wantquote=1
fi
fi
if (( $wantquote )); then
content=${(q-)content}
fi
LBUFFER+=$content
YANK_START=$start
YANK_END=$#LBUFFER
zle -f yank