Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re[2]: How to set up completion for git aliases?
On Thu, 1 Nov 2012, Vadim Zeitlin wrote:
On Sat, 07 Jul 2012 01:02:43 +0200 Frank Terbeck <ft@xxxxxxxxxxxxxxxxxxx> wrote:
FT> Vadim Zeitlin wrote:
FT> >  I have a simple git alias "lg = log --oneline" and I'd like zsh to 
FT> > complete it in the same way as it already completes "git log".
...
FT> You don't need to do anything, unless you're on a quite old version of 
FT> zsh. The _git completion has support for that out of the box.
Hello,
I'd like to return to this thread because I think that this (very 
useful) feature doesn't play well with the method of setting up custom 
completion for git subcommands described in the standard 
Completion/Unix/_git: the comment in the beginning of this file says 
that you should be able to simply defined your own _git-foo completion 
function to handle completion of "git foo". Unfortunately this doesn't 
seem to work or, actually, it does work as long as "foo" is really an 
external command and not an alias. But if I have "foo" defined as an 
alias in my ~/.gitconfig, then it seems that the alias completion 
takes over and it tries to complete the "!sh -c ..." alias expansion 
which, unsurprisingly, doesn't work really well.
Is there some way to tell git completion to use _git-foo if it's 
defined even if foo is an alias? I tried to find it but unfortunately 
_git file is just too much for me...
Of course, there is always the solution of actually using an external 
command instead of an alias but having an alias is often more 
convenient for simple one-liners so it would be nice if it could be 
made to work.
I recently posted a patch to make this work:
zsh-workers 30737
http://www.zsh.org/mla/workers/2012/msg00643.html
For the example mentioned (git alias "lg = log --oneline"), if the 
function _git-lg exists, the patch will let it be used for completion.
--
Best,
Ben
Messages sorted by:
Reverse Date,
Date,
Thread,
Author