Sugiro escrever uma função de conclusão para sua função cdgit
.
Coloque este arquivo chamado _cdgit
em um diretório que esteja em $fpath
, por exemplo. /usr/share/zsh/site-functions
, depois inicie uma nova instância de shell:
#compdef cdgit
local expl
local ret=1
[[ CURRENT -eq 2 ]] && _wanted directories expl 'git toplevel directory' \
_path_files -/ -W $(git rev-parse --show-toplevel) && ret=0
return ret
Isto é emprestado de uma das últimas linhas na função _cd
de conclusão, que é claro, muito mais complexa.
Demo:
/usr/src/linux-git/Documentation/x86> cd [TAB] local directory i386/ x86_64/ /usr/src/linux-git/Documentation/x86> cdgit [TAB] git toplevel directory Documentation/ crypto/ include/ lib/ scripts/ usr/ arch/ drivers/ init/ mm/ security/ virt/ block/ firmware/ ipc/ net/ sound/ certs/ fs/ kernel/ samples/ tools/