当我在 zsh shell 中调用时alias
,我会得到一个别名列表。其中一些是需要的,有些则不需要。我最初.alias
在我的主目录中创建了一个文件,并将其添加source $HOME/.alias
到我的 中.zshrc
。我如何剔除不属于我的 所获取文件的任何现有别名.zshrc
?(大概我可以用 逐个执行此操作unalias
,但这似乎非常麻烦。)
答案1
unalias
支持同时取消设置多个别名,因此您不必逐个执行此操作。
我建议只删除所有别名并从重新加载它们~/.alias
。
unalias ${(k)aliases} ${(k)galiases} ${(k)saliases}; source
这需要zsh/parameter
加载模块。使用 检查zmodload | grep parameter
,使用 加载zmodload zsh/parameter
。
参数aliases
、galiases
和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
}