Estou mexendo no accept-line
widget e não obtendo os resultados desejados. Quero inspecionar (e registrar) o que está acontecendo com a linha de aceitação, encontrando a função zsh subjacente.
Meu entendimento é que os widgets zle existem em seu próprio namespace separado com as zle -N
chaves de mapeamento da operação para valor neste namespace e os zle -A
mapeamentos de duplicação da operação.
Eu fiz uma pesquisa bastante detalhada dozshzlepágina de manual e pesquisei no Google, mas o melhor que consegui encontrar é o seguinte que faz uso da zle -l
operação.
zle -l | grep '^accept-line ' | grep -Eo '\(.*\)' | tr -d '()'
Existe algo que não dependa tão diretamente do formato da saída do arquivo zle -l
.
Responder1
Existe um array especial chamado widgets
que contém os nomes de todos os widgets e funções associadas a eles, então tente
echo $widgets[accept-line]
Esteja ciente, entretanto, que alguns widgets são definidos internamente e tudo que você obterá é uma palavraconstruídas em, mas a julgar pelo seugrepcomande algum script originado em.zshrcsubstituiu esse widget, então você deve obter um resultado significativo.
Aliás, se você quiser listar todos os widgets disponíveis e suas funções, use (kv)
o sinalizador:
echo ${(kv)widgets}