ZSH 古いエイリアスを削除

ZSH 古いエイリアスを削除

zsh シェルを呼び出すとalias、エイリアスのリストが表示されます。必要なものもあれば、そうでないものもあります。最初に.aliasホーム ディレクトリにファイルを作成し、source $HOME/.aliasそれを に追加しました.zshrc。 によってソースされるファイルの一部ではない既存のエイリアスを除外するにはどうすればよいでしょうか.zshrc? ( を使ってこれを 1 つずつ実行できると思いますunaliasが、非常に面倒です。)

答え1

unalias複数のエイリアスを同時に設定解除することがサポートされているため、必ずしも 1 つずつ実行する必要はありません。

すべてのエイリアスを削除して、 から新たにリロードすることをお勧めします~/.alias

unalias ${(k)aliases} ${(k)galiases} ${(k)saliases}; source 

これにはzsh/parameterモジュールをロードする必要があります。 でチェックしzmodload | grep parameter、 でロードしますzmodload zsh/parameter

パラメータaliasesgaliasesおよびは、saliasesそれぞれ通常のエイリアス、グローバル エイリアス、およびサフィックス エイリアスの名前をそれらの展開にマップします。は、${(k)parameter}のキーに置き換えられますparameter


何らかの理由でモジュールをロードできない場合は、次のコマンドの出力を使用して回避できますalias

unalias $(alias | cut -d = -f 1) ; source ~/.alias

特定の種類のエイリアスのみを設定解除する場合は、alias -r通常のエイリアス (コマンドの代わりに使用されるエイリアス) には を、alias -gグローバル エイリアスには を、alias -sサフィックス エイリアスには を使用します。


~/.zshrcこれをもっと頻繁に行う必要がある場合は、 (またはそこからソースとなる他のファイル)に関数を定義するだけです。

reload-aliases () {
    unalias ${(k)aliases}
    source ~/.alias
}

関連情報