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