Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: Add a much simpler alternative to using url-quote-magic + bracketed-paste-magic
- X-seq: zsh-workers 36692
- From: Mikael Magnusson <mikachu@xxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: PATCH: Add a much simpler alternative to using url-quote-magic + bracketed-paste-magic
- Date: Tue, 29 Sep 2015 06:43:53 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=ySsZK3dJoeaNV9ouSvlFUB82e8oa/eNKc9lpj0WInws=; b=hSb0VoNzF+q1x4hRaCpKe43ZV4dAyno2yaSspGJXow9IS4K8drdIQmMKsm1+UnWqma XIkvosABqbG6+jIyi9ihVLi0/gF4edXzh+JRtUwpeU8saIrr/s75Oj8fOoXkPjq7/TVY PCp8H1Bg4Uyv3SgfPub+uANtsTNzyqBCW5BmfAgLFM7utmSWoRHV4w1ocQ00DHczzF8V mSY/1bejMs7tv7Q86CzNjqCObvIHDzLLP0bbDa8lernyBZXqb0FPdBzzNpsydwIMJBOY CZWUCSlImr1fp9UiPBEO251oxKN+vRs4eCzDIjUi1sxqZD0vYAtFT5eHmEh0x5pU0B+/ 5LIQ==
- In-reply-to: <1443501793-29753-1-git-send-email-mikachu@gmail.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <1443501793-29753-1-git-send-email-mikachu@gmail.com>
Now that we have more control over the yank highlighting, we can handle pasted
urls directly, instead of mucking around with pretending we don't know which
text was pasted together, then trying to reverse engineer this fact from it looking
like a url. This function simply looks at the first few characters and if they
match the configured schemas, then the paste is quoted.
It handles NUMERIC to quote, but not any weird vi or newline stripping stuff.
---
Functions/Zle/bracketed-paste-url-magic | 38 +++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 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 0000000..e05e982
--- /dev/null
+++ b/Functions/Zle/bracketed-paste-url-magic
@@ -0,0 +1,38 @@
+# bracketed-paste-url-magic quotes pasted urls automatically, if the
+# paste exactly starts with a url, eg no spaces or other characters precede it
+#
+# To use it, 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
+YANK_ACTIVE=1
--
2.5.0
Messages sorted by:
Reverse Date,
Date,
Thread,
Author