我需要一种方法来列出 zsh 中的别名、函数、变量、数组的名称(不包括正文/内容/值)。最好它的行为应该像compgen
:
compgen -a # will list all the aliases you could run.
compgen -A function # will list all the functions you could run.
compgen -A variable # will list all the variables defined.
背景
我需要这个来开发 env_parallel.zsh:https://www.gnu.org/software/parallel/env_parallel.html
答案1
别名和函数包含在aliases
和中functions
,只需打印它们的键即可。 “变量和数组”比较棘手;parameters
可能就够了?
print -rl -- ${(k)aliases} ${(k)functions} ${(k)parameters}
(您可能还需要builtins
、commands
,也许还需要 中列出的其他内容print -l ${(k)
,然后再进行混搭tab,假设已启用完成功能。)