Comment puis-je dire à mon zsh d'essayer automatiquement une command avec git
devant, si la command est introuvable? Par exemple, je veux exécuter le $ status
et s'il n'y a pas de status
dans $PATH
, mon zsh devrait essayer le git status
.
Cela semble fragile – vous pourriez prendre l'habitude de taper foo
au lieu de git foo
, puis un jour une nouvelle command foo
apparaît et foo
plus git foo
– mais cela peut être fait. Lorsqu'une command n'est pas trouvée avec une search normale (alias, fonction, builtin, exécutable sur PATH
), zsh appelle la fonction command_not_found_handler
(si elle est définie). Cette fonction reçoit la command et les arguments de la command comme arguments.
command_not_found_handler () { git "$@" }
Si vous voulez effectuer un filtrage plus sophistiqué, la command est dans $1
et ses arguments peuvent être appelés "$@[2,$#]"
.
command_not_found_handler () { if …; then git "$1" "$@[2,$#]" fi }
Je suggère que ne pas créer des problèmes pour vous-même, il suffit de vérifier oh-my-zsh , et mettez
plugins=(git)
dans votre file .zshrc , vous pouvez voir le statut git en tapant gst .
… et beaucoup d'autres, checkout git.plugin.zsh