git
如果没有找到命令,如何告诉我的 zsh 自动尝试前面的命令?例如,我想运行$ status
,如果没有status
in $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