Quando chamo alias
um shell zsh, recebo uma lista de aliases. Alguns deles são desejados, outros não. Originalmente, criei um .alias
arquivo em meu diretório inicial e adicionei source $HOME/.alias
ao meu arquivo .zshrc
. Como faço para selecionar qualquer alias existente que não faça parte do arquivo que está sendo originado pelo meu arquivo .zshrc
? (Presumivelmente eu poderia fazer isso um por um unalias
, mas isso parece incrivelmente complicado.)
Responder1
unalias
suporta a desativação de vários aliases ao mesmo tempo, portanto você não precisa fazer isso necessariamente um por um.
Eu sugeriria apenas descartar todos os aliases e recarregá-los novamente em ~/.alias
.
unalias ${(k)aliases} ${(k)galiases} ${(k)saliases}; source
Isso requer que o zsh/parameter
módulo seja carregado. Verifique com zmodload | grep parameter
, carregue com zmodload zsh/parameter
.
Os parâmetros aliases
e mapeiam os nomes de aliases regulares, globais e de sufixo, respectivamente, para suas expansões galiases
. é substituído pelas chaves de .saliases
${(k)parameter}
parameter
Se você não conseguir carregar o módulo por algum motivo, poderá contornar isso usando a saída do alias
comando:
unalias $(alias | cut -d = -f 1) ; source ~/.alias
Se você deseja remover apenas um tipo específico de alias, use alias -r
para aliases regulares (aqueles usados em vez de comandos), alias -g
para aliases globais e alias -s
para aliases de sufixo.
Se você precisar fazer isso com mais frequência, basta definir uma função no seu ~/.zshrc
(ou em algum outro arquivo obtido a partir daí)
reload-aliases () {
unalias ${(k)aliases}
source ~/.alias
}