Clear or disable aliases in zsh
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:
Change
~/.oh-my-zsh/plugins/git/git.plugin.zsh
by removing all the aliases at the bottomMake 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 doplugins=(git-noalias)
instead ofplugins=(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.
Related videos on Youtube
Siyuan Ren
Updated on September 18, 2022Comments
-
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 over 9 yearsWhen I append this line to
.zshrc
, there is still one aliasgloburl='noglob urlglobber '
left. Any idea why? -
cuonglm over 9 yearsMaybe it's loaded after
unalias
ran. ,Maybe you should put theunalias
command at the end of your.zshrc
-
Siyuan Ren over 9 yearsI did put it at the end. That is why it is so confusing.
-
cuonglm over 9 yearsWhat is output of
zstyle
? -
Siyuan Ren over 9 yearsSee gist.github.com/netheril96/70be43f8627eea5603f1 for the
zstyle
output. -
Siyuan Ren over 9 yearsI recursively grepped .oh-my-zsh directory and cannot find any thing containing the word
globber
orgloburl
. -
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 over 9 yearsIt is just odd that this is defined but nowhere to be found in my filesystem.
-
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' 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 bindsself-insert
tourl-quote-magic
. -
Timo over 3 yearsThe advantage of not having aliases but keep the git plugin of oh-my-zsh is the functions.
-
rangfu about 2 yearsThanks! I like this solution because it will still work after updates to oh-my-zsh and its git plugin.