인용할 필요가 없는 매개변수 문자열을 받아들이는 함수를 작성하는 방법은 무엇입니까?

인용할 필요가 없는 매개변수 문자열을 받아들이는 함수를 작성하는 방법은 무엇입니까?

내 Mac에서 ~/.zshrc에 추가할 함수를 작성 중입니다. 이는 보다 빠른 처리를 위한 것입니다 youtube-dl.

나는 이것을 가지고있다:

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

그런데 요청할 때 유튜브 링크를 따옴표로 묶어서 입력해야 해요.

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을 터미널에 입력하거나 붙여넣으면 자동으로 인용됩니다.


또 다른 접근 방식( 에도 사용됨 )은 명령줄을 작성하는 함수에 바로가기(예: ++ ) 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 bestEnter.zshrc

다른 사람들은 특정 명령 이후의 모든 것을 참조하기 위해 위젯/플러그인을 사용하는 것을 선호합니다(참조여기또는여기)...그렇습니다. 견적을 받는 방법에는 여러 가지가 있습니다.

관련 정보