Clear or disable aliases in zsh

10,659

Solution 1

If you don't want any of oh-my-zsh's aliases, but you want to keep other aliases, you can save the aliases before loading oh-my-zsh

save_aliases=$(alias -L)

and restore them afterwards.

eval $save_aliases; unset save_aliases

If you want to remove all aliases at some point, you can use unalias -m '*' (remove all aliases matching *, i.e. all of them).

If you absolutely hate aliases and don't want to ever see one, you can make the alias builtin inoperative: unalias -m '*'; alias () { : }. Or you can simply turn off alias expansion with setopt no_aliases.

Solution 2

You can use unalias with -m option:

unalias -m '*'

to delete all defined aliases

Solution 3

If you only want to remove the git aliases, I recommend one of the following two choices:

  1. Change ~/.oh-my-zsh/plugins/git/git.plugin.zsh by removing all the aliases at the bottom

  2. Make a copy of that plugin (recommended location: ~/.oh-my-zsh/custom/plugins/git-noalias/git-noalias.plugin.zsh), edit that copy to not have the aliases, and then change your ~/.zshrc to do plugins=(git-noalias) instead of plugins=(git).

This will give you all the benefits of the plugin (I'm not sure what they are but they may be related to the automatic Git status/branch information displayed within Git folders) without the aliases.

Share:
10,659

Related videos on Youtube

Siyuan Ren
Author by

Siyuan Ren

Updated on September 18, 2022

Comments

  • Siyuan Ren
    Siyuan Ren over 1 year

    I installed oh-my-zsh to make terminal use a bit easier. One thing that bugs me though is the prolific aliases added by it, like "ga", "gap", "gcmsg", "_", which are harder to remember than the original command, and pollutes the command hash table.

    So is there a way to disable aliases altogether? Or a way to clear all aliases so that I can put it in my .zshrc?

  • Siyuan Ren
    Siyuan Ren over 9 years
    When I append this line to .zshrc, there is still one alias globurl='noglob urlglobber ' left. Any idea why?
  • cuonglm
    cuonglm over 9 years
    Maybe it's loaded after unalias ran. ,Maybe you should put the unalias command at the end of your .zshrc
  • Siyuan Ren
    Siyuan Ren over 9 years
    I did put it at the end. That is why it is so confusing.
  • cuonglm
    cuonglm over 9 years
    What is output of zstyle?
  • Siyuan Ren
    Siyuan Ren over 9 years
  • Siyuan Ren
    Siyuan Ren over 9 years
    I recursively grepped .oh-my-zsh directory and cannot find any thing containing the word globber or globurl.
  • cuonglm
    cuonglm over 9 years
    @SiyuanRen: I think because of these lines url-globbers (eval) :url-quote-magic 'zmodload -i zsh/parameter; reply=( noglob ${(k)galiases[(R)(* |)(noglob|urlglobber|globurl) *]:-} ${(k)aliases[(R)(* |)(noglob|urlglobber|globurl) *]:-} )'. It returns new alias definition.
  • Siyuan Ren
    Siyuan Ren over 9 years
    It is just odd that this is defined but nowhere to be found in my filesystem.
  • cuonglm
    cuonglm over 9 years
    @SiyuanRen: You can post it as another question, to get more details answer from another users. I don't have deep knowledge about zsh to give you an explanation about that.
  • Gilles 'SO- stop being evil'
    Gilles 'SO- stop being evil' over 9 years
    @SiyuanRen This alias is defined when the function url-quote-magic is loaded (see /usr/share/zsh/functions/Zle/url-quote-magic or wherever it is on your system). Oh-my-zsh binds self-insert to url-quote-magic.
  • Timo
    Timo over 3 years
    The advantage of not having aliases but keep the git plugin of oh-my-zsh is the functions.
  • rangfu
    rangfu about 2 years
    Thanks! I like this solution because it will still work after updates to oh-my-zsh and its git plugin.