Wenn ich alias
eine ZSH-Shell aufrufe, erhalte ich eine Liste mit Aliasnamen. Manche davon sind erwünscht, manche nicht. Ich habe ursprünglich eine .alias
Datei in meinem Home-Verzeichnis erstellt und source $HOME/.alias
zu 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
unalias
unterstü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/parameter
Modul geladen sein. Prüfen mit zmodload | grep parameter
, laden mit zmodload zsh/parameter
.
Die Parameter aliases
, galiases
und saliases
ordnen 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 alias
Befehls verwenden:
unalias $(alias | cut -d = -f 1) ; source ~/.alias
Wenn Sie nur einen bestimmten Aliastyp aufheben möchten, verwenden Sie es alias -r
für reguläre Aliase (die anstelle von Befehlen verwendet werden), alias -g
für globale Aliase und alias -s
fü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
}