引用する必要のないパラメータ文字列を受け入れる関数を書くには?

引用する必要のないパラメータ文字列を受け入れる関数を書くには?

私のMacでは、~/.zshrcに追加する関数を書いています。これはより速い処理のためですyoutube-dl

私はこれを持っています:

function dlv()
{
        cd /Users/admin/Downloads
        youtube-dl -f 'best' "$1"
}

ところで、リクエスト時にYouTubeのリンクを引用符で囲んで入力する必要があります。

dlv "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

変えるdlv https://www.youtube.com/watch?v=dQw4w9WgXcQ

この目標をどのように達成できますか?

ベストアンサー1

まあ、zshわかりました。あなたのための推奨であるURLzle機能とラインエディタを介して:

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

その後、URLを端末に入力または貼り付けると自動的に引用されます。


もう1つのアプローチ(にも使用されます)は、コマンドラインを作成する関数にショートカット(たとえば++)zleを割り当てることです。つまり、参照先URLの前にコマンドとそのオプションを挿入します。CtrlAlty

dlv () {
cmd='youtube-dl -f best '
jump=$(( ${#${(qq)BUFFER}} - ${#BUFFER} ))
BUFFER=${cmd}${(qq)BUFFER}
CURSOR+=$(( ${#cmd} + jump ))
}
zle -N dlv
bindkey '^[^y' dlv

次のように使用できます。 URLを入力または貼り付けてから、Ctrl+をクリックして前のURLを引用し、カーソルを行Altの末尾に配置します。次に、クリックして上記の項目を追加して永久に作成します。yyoutube-dl -f best Enter.zshrc

他の人は、特定のコマンドの後のすべてを参照するためにウィジェット/プラグインを使用することを好みます(参照ここまたはここ)…そうです。見積もりを受け取る方法はいくつかあります。

おすすめ記事