zshでは、ワイルドカードを使用するとき、?
または*
以下のようにワイルドカードが有効になります。
ls file?.txt
ただし、次の状況ではワイルドカードを無効にしたいと思います。
youtube-dl https://www.youtube.com/watch?v=QIysdjpiLcA
'
パラメータを一重引用符または二重引用符(または)で囲むことで、"
この問題を解決できます。
URLなどのパターンで使用するときにワイルドカードを無視するように(つまり、ワイルドカードを使用しないように)zshを何らかの方法で設定できますか?それともいくつかのコマンド/実行ファイルの場合?
答え1
入れたらnoglob
コマンドの前にワイルドカードは使用されません。
noglob youtube-dl https://www.youtube.com/watch?v=QIysdjpiLcA
特定のコマンドでワイルドカードを無効にするには、そのコマンドをエイリアスに設定します。
alias youtube-dl='noglob youtube-dl'
これはURLには役立ちますが、?
URLには役立ちません&
。&
参照除外の解釈を無効にする方法はありません。
クリップボードにURLがある場合は、貼り付けるのではなくコマンドを使用してクリップボードの内容を呼び出すことができます。
youtube-dl "`xsel`" # X11 automatic mouse selection
youtube-dl "`xclip -o`" # X11 automatic mouse selection
youtube-dl "`xsel -b`" # X11 explicitly copied clipboard
youtube-dl "`xclip -o -sc`" # X11 explicitly copied clipboard
youtube-dl "`pbpaste`" # macOS clipboard
シェル履歴には、URLではなく貼り付けたコマンドが含まれます。Tabコマンドが終了する前にコマンドラインの最後を押すと、コマンドの置き換えがURLに展開されます。 (完了設定によって必要なキーが異なる場合があります。Zshコマンドラインですべての変数を拡張する方法は?そしてShellはタブプレフィックスを完成できますか?.)
または端末でサポートしている場合かっこ内に貼り付ける(良い最新の製品ではこれを行います。)貼り付ける前にCtrl+を押してくださいU(または数値パラメータを設定する他の項目)。 URL(または貼り付けた内容)は引用符で囲みます。これには、ブラウザが無視する先行スペースと末尾のスペースが含まれます。