Se eu carregar funções de conclusão na inicialização do shell, mas gerar shell como um louco para trabalhar na mesma pasta.
Este é o caso quando eu tenho várias funções de conclusão que visam o repositório que contém a .git
pasta, se estivermos no repositório, as funções serão carregadas.
O problema é que, com todas as funções de conclusão iniciadas ao gerar um novo shell, ele desenha um prompt de shell bastante lento.
Então, como acionar manualmente as source
funções de carregamento/conclusão? Mesmo eu sabendo que já estou no .git
repositório, ainda quero carregar manualmente a função de conclusão antes de usá-la, o custo do spawn lento do shell é maior do que a própria conclusão.
Em vez de carregar funções de conclusão na inicialização, declare-as como carregadas automaticamente. Desta forma, cada função será carregada na primeira vez que for usada.
A maneira normal de fazer isso é colocar o código de cada função em um arquivo em um diretório em
$fpath
. Chame o arquivo com o nome que você deseja dar à função. Na primeira linha do arquivo, adicione uma#compdef
tag .Então, se você costumava ter isso em seu
.zshrc
:então, em vez disso, apenas coloque isso no seu
.zshrc
:e criar
~/.zsh/functions/_foo
contendo