我已经编写了一个名为mgit
的小Shell脚本,该脚本在多个存储库中执行相同的git命令。我想告诉zsh,mgit
的参数应该像git
的参数一样完成。
例如,我可以输入git st
并点击Tab键,这将完成git status
。因此,我想输入mgit st
并点击Tab键,并将其完成到mgit status
。
因此,我以自己非常漂亮的方式键入了compdef _git mgit
,然后键入了mgit st
,然后键入了tab,这就是我得到的:
foo% mgit st_git:12: command not found: __mgit_main
mgit
因此,我在/usr/local/share/zsh/functions/_git
中搜索了main
一词,但没有阐明。
我想说明mgit status
已经按照我的意愿行事了,这个问题仅与完成有关。
我想进一步澄清一下,我知道我的方法有时会导致“错误的”完成,例如mgit checkout feature/<TAB>
将完成当前存储库中的分支名称,而不是执行复杂的操作,例如计算多个存储库中所有分支名称的交集。我对此很好。
在MacOS上运行zsh 5.7.1,并通过Homebrew安装。