列出 zsh 中的别名、函数和变量的名称

列出 zsh 中的别名、函数和变量的名称

我需要一种方法来列出 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}

(您可能还需要builtinscommands,也许还需要 中列出的其他内容print -l ${(k),然后再进行混搭tab,假设已启用完成功能。)

相关内容