ZSH Отбраковка старых псевдонимов

ZSH Отбраковка старых псевдонимов

Когда я вызываю 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
}

Связанный контент