Я написал небольшой сценарий оболочки под названием mgit
, который выполняет одну и ту же команду git в нескольких репозиториях. Я хотел бы сказать zsh, что аргументы для mgit
должны быть завершены как git
arguments.
Например, я могу набрать git st
и нажать клавишу Tab, и это завершится до git status
. Поэтому я хотел бы набрать mgit st
и нажать Tab, и завершить это до mgit status
.
Итак, я очень блондином набрал compdef _git mgit
, а затем набрал mgit st
и табуляцию, и вот что я получил:
foo% mgit st_git:12: command not found: __mgit_main
mgit
Поэтому я искал /usr/local/share/zsh/functions/_git
слово main
, но оно не выяснялось.
Я хотел бы уточнить, что mgit status
уже делает то, что я хочу, этот вопрос только о завершении.
Я хотел бы уточнить, что я знаю, что мой подход иногда приводит к «неправильным» завершениям, например, mgit checkout feature/<TAB>
завершит имена веток из текущего репозитория, вместо того, чтобы делать что-то сложное, например, вычислять пересечение всех имен ветвей в нескольких репозиториях. Я в порядке с этим.
Запуск zsh 5.7.1 на macOS, установленной через Homebrew.