zsh: завершить `mgit`, как` git` - PullRequest
0 голосов
/ 09 июля 2019

Я написал небольшой сценарий оболочки под названием 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.

...