![zle 위젯과 관련된 zsh 함수를 찾는 방법은 무엇입니까?](https://linux55.com/image/109529/zle%20%EC%9C%84%EC%A0%AF%EA%B3%BC%20%EA%B4%80%EB%A0%A8%EB%90%9C%20zsh%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%B0%BE%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
위젯 을 가지고 놀고 있는데 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}