Когда я вызываю alias
в оболочке zsh, я получаю список псевдонимов. Некоторые из них желательны, некоторые нет. Первоначально я создал файл .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
}