ZSH Cull alte Aliase

ZSH Cull alte Aliase

Wenn ich aliaseine ZSH-Shell aufrufe, erhalte ich eine Liste mit Aliasnamen. Manche davon sind erwünscht, manche nicht. Ich habe ursprünglich eine .aliasDatei in meinem Home-Verzeichnis erstellt und source $HOME/.aliaszu meinem hinzugefügt .zshrc. Wie entferne ich vorhandene Aliase, die nicht Teil der Datei sind, die von meinem bezogen wird .zshrc? (Vermutlich könnte ich dies mit einzeln tun unalias, aber das scheint unglaublich umständlich.)

Antwort1

unaliasunterstützt das gleichzeitige Aufheben der Löschung mehrerer Aliase, Sie müssen dies also nicht unbedingt einzeln tun.

Ich würde vorschlagen, einfach alle Aliase zu löschen und sie von neu zu laden ~/.alias.

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

Hierzu muss das zsh/parameterModul geladen sein. Prüfen mit zmodload | grep parameter, laden mit zmodload zsh/parameter.

Die Parameter aliases, galiasesund saliasesordnen die Namen regulärer, globaler und Suffix-Aliase jeweils ihren Erweiterungen zu. ${(k)parameter}wird durch die Schlüssel von ersetzt parameter.


Wenn Sie das Modul aus irgendeinem Grund nicht laden können, können Sie das Problem umgehen, indem Sie die Ausgabe des folgenden aliasBefehls verwenden:

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

Wenn Sie nur einen bestimmten Aliastyp aufheben möchten, verwenden Sie es alias -rfür reguläre Aliase (die anstelle von Befehlen verwendet werden), alias -gfür globale Aliase und alias -sfür Suffix-Aliase.


Wenn Sie dies öfter tun müssen, definieren Sie einfach eine Funktion in Ihrer ~/.zshrc(oder einer anderen Datei, die Sie von dort beziehen)

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

verwandte Informationen