diff options
author | Peter Stephenson <pws@zsh.org> | 2015-10-01 09:44:56 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2015-10-01 09:44:56 +0100 |
commit | 8877783b2f98de67144f403e0146b6d201e98ba3 (patch) | |
tree | c8fe6c4d4fc6d7c93119c01cc300427655001ba3 /Functions/Zle | |
parent | 007f249a8e190306a9ef6bca2317e79004ace871 (diff) | |
parent | bc2e73ba4c27a220a6f122cb7b9b5c6fa9996941 (diff) | |
download | zsh-8877783b2f98de67144f403e0146b6d201e98ba3.tar.gz zsh-8877783b2f98de67144f403e0146b6d201e98ba3.tar.xz zsh-8877783b2f98de67144f403e0146b6d201e98ba3.zip |
Merge branch 'master' of https://git.code.sf.net/p/zsh/code
Diffstat (limited to 'Functions/Zle')
-rw-r--r-- | Functions/Zle/bracketed-paste-url-magic | 42 |
1 files changed, 42 insertions, 0 deletions
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 |