如何自动转义粘贴到终端的字符串中的特殊字符?

问题描述:

我安装了CLI实用程序“youtube-dl”。它需要一个网址作为参数。从系统剪贴板粘贴这些网址是很自然的。但是,使用zsh会返回一个错误“找不到匹配项”,因为youtube url中的特殊字符不会被转义。如何自动转义粘贴到终端的字符串中的特殊字符?

我需要从这个去:

https://www.youtube.com/watch?v=ShxHGFs2IKE 

这样:

https\:\/\/www\.youtube\.com\/watch\?v=ShxHGFs2IKE 

这是一个相当痛苦,每次手动逃避所有的字符,所以我的问题是:我怎么能做这项工作没有所有的手动编辑每次urls?

+0

也许与封闭的网址'“...”'会帮助 – gribvirus74

如说,在评论,请尝试使用引号:

youtube-dl 'https://www.youtube.com/watch?v=ShxHGFs2IKE' 

也可以加载zshurl-quote-magic得到特殊的shell字符必须在URL中自动报价:

autoload -Uz url-quote-magic 
zle -N self-insert url-quote-magic 
+0

简单易懂 - 将字符串放在引号中完全解决了问题!谢谢。 有关网址引用魔术的知识也很多。 –