我的 zshrc 中有一个名为 la 的 ls -als 自定义别名,它被 ls -lAh 之类的东西覆盖了。这是从哪里来的?

I have a custom alias for `ls -als` called `la` in my zshrc, and it's being overwritten by something as `ls -lAh`. Where is this coming from?

我的 .zshrc

中有以下内容
alias la="ls -als"

它正在被覆盖

▶︎ which la
la: aliased to ls -lAh

为什么会发生这种情况/它可能来自哪里?

在 的帮助下,事实证明 oh-my-zsh 在 ~/.oh-my-zsh/lib/directories.zsh 中有一些内置的目录别名,其中之一覆盖了我的自定义别名!

▶︎ cat directories.zsh
# Changing/making/removing directory
...
# List directory contents
alias lsa='ls -lah'
alias l='ls -lah'
alias ll='ls -lh'
alias la='ls -lAh'

您可以通过以下几种方式解决此问题:

  • 将我的 la 别名更改为其他别名
  • 修改以上.oh-my-zsh文件
  • 确保我在 .zshrc 中的 source $ZSH/oh-my-zsh.sh 之后定义别名。 source $ZSH/oh-my-zsh.sh 基本上是 .oh-my-zsh/lib
  • 中的所有内容

我选择了最后一个选项。