如何调用前面没有“git”的 git 命令?

如何调用前面没有“git”的 git 命令?

git如果没有找到命令,如何告诉我的 zsh 自动尝试前面的命令?例如,我想运行$ status,如果没有statusin $PATH,我的 zsh 应该尝试git status

答案1

这听起来很脆弱——你可能会养成打字foo而不是 的习惯git foo,然后有一天foo会出现一个新命令并且foo不再调用git foo——但这是可以做到的。当通过正常查找(别名、函数、内置命令、可执行命令PATH)找不到命令时,zsh 调用该command_not_found_handler函数(如果已定义)。该函数接收命令和命令的参数作为其参数。

command_not_found_handler () {
  git "$@"
}

如果您想做一些更高级的过滤,该命令位于$1,其参数可以称为"$@[2,$#]"

command_not_found_handler () {
  if …; then
    git "$1" "$@[2,$#]"
  fi
}

答案2

我建议不要给自己制造问题,直接结账哦我的zsh,并把

plugins=(git)

在你的.zshrc,然后你可以看到git 状态通过输入消费税

...还有很多其他的,结账git.plugin.zsh

相关内容