當我呼叫alias
zsh shell 時,我會得到一個別名列表。其中一些是需要的,有些則不是。我最初.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
}