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

Terminal 如何自动转义粘贴到终端的字符串中的特殊字符?,terminal,automation,escaping,zsh,paste,Terminal,Automation,Escaping,Zsh,Paste,我已安装CLI实用程序“youtube dl”。它以URL作为参数。从系统剪贴板粘贴这些URL是最自然的。但是,使用zsh会返回一个错误“找不到匹配项”,因为youtube URL中的特殊字符不会转义 我需要从这里开始: https://www.youtube.com/watch?v=ShxHGFs2IKE 为此: https\:\/\/www\.youtube\.com\/watch\?v=ShxHGFs2IKE 每次手动转义所有字符都很痛苦,因此我的问题是:如果每次都不手动编辑URL,我

我已安装CLI实用程序“youtube dl”。它以URL作为参数。从系统剪贴板粘贴这些URL是最自然的。但是,使用zsh会返回一个错误“找不到匹配项”,因为youtube URL中的特殊字符不会转义

我需要从这里开始:

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

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

每次手动转义所有字符都很痛苦,因此我的问题是:如果每次都不手动编辑URL,我如何才能做到这一点?

如评论中所述,尝试使用引号:

youtube-dl 'https://www.youtube.com/watch?v=ShxHGFs2IKE'
或者,您可以加载
zsh
,以获取在URL中自动引用的特殊shell字符:

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

也许用
“…”
封装URL会让人尴尬地简单-将字符串放在引号中完全解决了问题!谢谢很高兴了解url报价魔术也。