ZSH elimina alias antiguos

ZSH elimina alias antiguos

Cuando llamo aliasa un shell zsh, obtengo una lista de alias. Algunas de ellas son deseadas, otras no. Originalmente creé un .aliasarchivo en mi directorio de inicio y lo agregué source $HOME/.aliasa mi archivo .zshrc. ¿Cómo selecciono cualquier alias existente que no sea parte del archivo obtenido por mi .zshrc? (Presumiblemente podría hacer esto uno por uno unalias, pero parece increíblemente engorroso).

Respuesta1

unaliasadmite la desactivación de varios alias al mismo tiempo, por lo que no es necesario hacerlo uno por uno.

Yo sugeriría simplemente eliminar todos los alias y volver a cargarlos desde ~/.alias.

unalias ${(k)aliases} ${(k)galiases} ${(k)saliases}; source 

Esto requiere que el zsh/parametermódulo esté cargado. Consultar con zmodload | grep parameter, cargar con zmodload zsh/parameter.

Los parámetros aliasesy asignan los nombres de alias regulares, globales y de sufijo, respectivamente, a sus expansiones galiases. se sustituye por las claves de .saliases${(k)parameter}parameter


Si no puede cargar el módulo por algún motivo, puede solucionarlo utilizando el resultado del aliascomando:

unalias $(alias | cut -d = -f 1) ; source ~/.alias

Si solo desea desarmar un tipo específico de alias, utilícelo alias -rpara alias regulares (aquellos que se usan en lugar de comandos), alias -gpara alias globales y alias -spara alias de sufijo.


Si necesita hacer esto con más frecuencia, simplemente defina una función en su ~/.zshrc(o en algún otro archivo que obtenga desde allí)

reload-aliases () {
    unalias ${(k)aliases}
    source ~/.alias
}

información relacionada