我正在摆弄小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}