Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: _git Completion and custom commands
Am 28.09.2010 um 06:06 schrieb Benjamin R. Haskell:
>> My question is then: how would I add my custom commands' names to the list already completed by _git (without completely overriding or modifying the system-wide configuration)?
>
> This has bothered me for a while, too. I think _git should include these by default. But, it's pretty easy to add:
>
> zstyle ':completion:*:git:*' user-commands ${${(k)commands[(I)git-*]}#git-}
>
> (I've found _git to be very about what it allows you to override via zstyles)
>
> Explanation of the '${${(k)commands[(I)git-*]}#git-}' portion:
>
> $commands is a built-in associative array that maps basenames to their full paths.
>
> E.g. one of my custom git- commands that it picks up is:
> commands[git-build-zsh]=/home/bhaskell/bin/git-build-zsh
>
> So, we're looking for the keys '(k)'. And we only want entries in the hash that have (I)ndexes matching 'git-*'. Then we want to remove the leading 'git-' portion ( ${...#git-} ).
All this is just because then you can type "git bu<TAB>" instead of "git-bu<TAB>"? Or is there more to it? Perhaps I do not understand.
Sebastian
Messages sorted by:
Reverse Date,
Date,
Thread,
Author