12

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?

8

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.

7

You can use unalias with -m option:

unalias -m '*'

to delete all defined aliases

  • When I append this line to .zshrc, there is still one alias globurl='noglob urlglobber ' left. Any idea why? – Siyuan Ren Oct 14 '14 at 8:46
  • Maybe it's loaded after unalias ran. ,Maybe you should put the unalias command at the end of your .zshrc – cuonglm Oct 14 '14 at 8:47
  • I did put it at the end. That is why it is so confusing. – Siyuan Ren Oct 14 '14 at 8:55
  • What is output of zstyle? – cuonglm Oct 14 '14 at 9:09
  • See gist.github.com/netheril96/70be43f8627eea5603f1 for the zstyle output. – Siyuan Ren Oct 14 '14 at 9:16
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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.