Se você abrir o arquivo que contém a definição da função autoloaded para git
completion:
No meu sistema Ubuntu, é:
/usr/share/zsh/functions/Completion/Unix/_git
na parte superior do arquivo, você verá a declaração #compdef
#compdef git git-cvsserver git-receive-pack git-upload-archive git-upload-pack git-shell gitk tig
você pode tentar adicionar seus aliases à definição #compdef
, por exemplo,
#compdef git git-cvsserver git-receive-pack [...] tig gch grb
^^^ ^^^
Em seguida, iniciar um novo shell para obter essa nova diretiva carregada.
Em seguida, tente invocar a conclusão.
O que é /usr/share/zsh/functions/Completion/Unix/_git
?
É o arquivo que contém a "função" autoloaded que define o comportamento de conclusão para todos os comandos definidos na diretiva #compdef
, nesse caso, a família de comandos git
, que vive em fpath
e é carregada automaticamente por compinit quando o sistema de completação é inicializado.
O que é #compdef
?
de man zshcompsys
#compdef name ... [ -{p|P} pattern ... [ -N name ... ] ]
The file will be made autoloadable and the function defined in it
will be called when completing names, each of which is either the
name of a command whose arguments are to be completed or one of a
number of special contexts in the form -context- described below.