
私はZSHを使用しており、いくつかのエイリアスが定義されています(複数の罰金に保存され、ロードされます~/.zshrc
)。良い結果。alias
利用可能なすべてのエイリアスを一覧表示するには、このコマンドを実行します。
これで、カスタムエイリアス、つまり現在のユーザーが定義したエイリアスのみを一覧表示できるようになります。どうすればいいですか?
答え1
~/.zshrc
独自のエイリアス定義を開始する前に(または定義したすべての場所で)エイリアスのリストを記録できます。私自身ニックネーム):
aliases_before=()
printf -v aliases_before '%s=%s' "${(kv@)aliases}"
次に、現在のリストと比較します。
aliases_now=()
printf -v aliases_now '%s=%s' "${(kv@)aliases}"
print -rC1 'Now and not before:' ${aliases_now:|aliases_before}
これは$aliases
、リストを公開するために特別な連想配列を使用しています。ノーマルエイリアスとその定義。グローバルエイリアスとサフィックスエイリアスを確認して$galiases
調べます。$saliases
以前に定義したのと同じ方法でエイリアスをオーバーライドすると、そのエイリアスはこのリストに表示されません。
別の方法は、関数を使用してmy-alias
エイリアスを定義し、それを独自の連想配列に書き込むことです。
typeset -A my_aliases
my-alias() {
local alias
for alias do
my_aliases[${alias%%=*}]=${alias#*=}
done
alias "$@"
}
次に:typeset my_aliases
エイリアスを確認してください。
エイリアスは csh 機能に近いです。 Bourneなどのシェルには優れた機能があります(エイリアスに使用されるすべての機能には使用できませんが)。
エイリアスを関数として定義すると(代わりにla() ls -la "$@"
)alias ls='ls -la'
、そのファイルで定義されている関数のリストを照会できます。
例えば、
print -rC1 -- ${(k)functions_source[(Re)$HOME/.zshrc]}
~/.zshrc
で定義された関数を一覧表示します。
whence -f -- ${(k)functions_source[(Re)$HOME/.zshrc]}
対応する定義も表示されます。