zshのエイリアス、関数、変数の名前を一覧表示します


11

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

回答:


18

エイリアスと関数はaliasesand functionsに含まれており、それらのキーを印刷するだけで済みます。「変数と配列」は扱いにくいです。parameters十分かもしれませんか?

print -rl -- ${(k)aliases} ${(k)functions} ${(k)parameters}

(完了が有効になっていると仮定して、、、およびおそらくからリストされた後、マッシングが必要builtinsになる場合もあります。)commandsprint -l ${(k)tab


1
たぶん${(kM)parameters:#[[:alpha:]_][[:alnum:]_]#}(を使用してextendedglob)変数であるパラメーターのみに対して。
ステファンChazelas

for k in ${(koM)parameters:#[[:alpha:]][[:alnum:]_]#}; do; [[ ${(M)parameters[$k]:#association*} ]] || continue; print -- "$k"; doneextendedglob設定する必要があります)探しているデータに応じて、使用する変数の短いリストを提供する必要があります。に変更[[:alpha:]]する[[:alpha:]_]と、アンダースコアで始まる連想配列(または変数)が含まれます。orまたはor またはに変更association*すると、これらのタイプの結果が得られます。「変数と配列」はもう少し作業が必要です。scalar*array*integer**export*
Friartek、2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.