위젯 을 가지고 놀고 있는데 accept-line
원하는 결과를 얻지 못했습니다. 기본 zsh 함수를 찾아 accept-line에서 어떤 일이 발생하는지 확인하고 기록하고 싶습니다.
제가 이해한 바에 따르면 zle 위젯은 자체 별도의 네임스페이스에 존재하며, 여기서 작업은 zle -N
키를 해당 네임스페이스의 값에 매핑하고 작업은 zle -A
매핑을 복사합니다.
난 괜찮아지쉴러매뉴얼 페이지에서 인터넷 검색을 했지만 제가 생각할 수 있는 가장 좋은 방법은 zle -l
해당 작업에 다음을 사용하는 것입니다.
zle -l | grep '^accept-line ' | grep -Eo '\(.*\)' | tr -d '()'
에 직접적으로 의존하지 않는 것이 있습니까 zle -l
?
답변1
widgets
관련된 모든 위젯과 함수의 이름을 포함하는 특별한 배열이 있으므로 시도해 보십시오.
echo $widgets[accept-line]
그러나 일부 위젯은 내부적으로 정의되어 있으므로 얻을 수 있는 것은 단어뿐입니다.내장, 하지만 당신의 판단에 따르면grep다음에서 파생된 일부 스크립트를 명령합니다..zshrc의미 있는 결과를 얻으려면 위젯을 재정의하세요.
그런데 사용 가능한 모든 위젯과 해당 기능을 나열하려면 (kv)
플래그를 사용하세요.
echo ${(kv)widgets}