mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-25 17:20:25 +02:00
36692: bracketed-paste-url-magic: simpler alternative for handling pasted urls
This commit is contained in:
parent
a855d7bd24
commit
76da752fd7
2 changed files with 45 additions and 0 deletions
42
Functions/Zle/bracketed-paste-url-magic
Normal file
42
Functions/Zle/bracketed-paste-url-magic
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue