No meu .zshrc
arquivo escrevi uma função baseada no git log:
lg() {
git log \
--abbrev=12 \
--graph \
--oneline \
--color=always \
--format="%C(cyan)%h %C(blue)%ar %C(auto)%d %C(yellow)%s %C(white)%ae" "$@" |
fzf
Para habilitar o preenchimento automático para esta função, adicionei ao meu .zshrc
:
compdef _git-log lg
A _git-log
função é de fato a função de conclusão básica para git log no zsh.
Está dentro /usr/share/zsh/functions/Completion/Unix/_git
.
Mas usar esse método, conforme recomendado aqui , não funciona para mim.
Depois de obter meu código .zshrc
e tentar usar meu lg
comando, continuo recebendo no meu terminal:
>$ lg (eval):1: command not found: _git-log
Como usar funções de conclusão do arquivo de conclusões para outras funções?
Edição: Conforme sugerido por @Stéphane Chazelas , usei a resposta deload_helper_functions
@Gille .
No final do meu .zshrc
, agora tenho:
load_helper_functions () {
emulate -LR zsh
if ((!$+functions[$1])) || [[ $functions[$1] = 'builtin autoload'* ]]; then
autoload +X +U $1
functions[$1]=${functions[$1]%$'\n'*}
$1
fi
}
load_helper_functions _git
compdef _git lg=git-log