From 76da752fd75955cd6240c1daa026cc34dea1e010 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Thu, 1 Oct 2015 03:52:16 +0200 Subject: 36692: bracketed-paste-url-magic: simpler alternative for handling pasted urls --- Functions/Zle/bracketed-paste-url-magic | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Functions/Zle/bracketed-paste-url-magic (limited to 'Functions/Zle/bracketed-paste-url-magic') diff --git a/Functions/Zle/bracketed-paste-url-magic b/Functions/Zle/bracketed-paste-url-magic new file mode 100644 index 000000000..e1bea60d6 --- /dev/null +++ b/Functions/Zle/bracketed-paste-url-magic @@ -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 -- cgit v1.2.3 From 99aff5bb0cad712b0e24e76ff2ba1ea3d2214769 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Thu, 1 Oct 2015 20:14:55 +0200 Subject: unposted: bracketed-paste-url-magic: actually do what the comment says --- Functions/Zle/bracketed-paste-url-magic | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'Functions/Zle/bracketed-paste-url-magic') diff --git a/Functions/Zle/bracketed-paste-url-magic b/Functions/Zle/bracketed-paste-url-magic index e1bea60d6..06dee2657 100644 --- a/Functions/Zle/bracketed-paste-url-magic +++ b/Functions/Zle/bracketed-paste-url-magic @@ -2,8 +2,10 @@ # 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. +# 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) # @@ -25,13 +27,13 @@ local start=$#LBUFFER zle .$WIDGET -N content -if ! (( $wantquote )); then +if (( $wantquote == 0 )); then if [[ $content = (${(~j:|:)schema})://* ]]; then wantquote=1 fi fi -if (( $wantquote )); then +if (( $wantquote == 1 )); then content=${(q-)content} fi -- cgit v1.2.3