I’ve been using Zsh as a Bash replacement for a while now. One thing that doesn’t work as well anymore is the completion for branch and uncommitted file names for mercurial.
If previously (bash) I had the following hg tracked folder:
repo/
.hg/
file1.txt
file2.txt <-- modified
Then doing this in Bash:
% hg commit -m "changed file2.txt" <TAB>
automagically completed file2.txt.
Same with branches — assuming I had default, dev and crazy branches, Bash knew how to complete branch names:
% hg update cr<TAB>
completed the branch name to crazy.
Basically what I’m asking is how to restore this functionality — which file/s take care of that and so on.
zshuses its internal system for advanced completion, whilebashuses a separatebash-completionsoftware for that. Their configuration is incompatible so if you want some function to work you need to find a 3rd party zsh completion module for it or write it yourself.mercurialcontains a sample zsh completion function, it is installed on my system as/usr/share/doc/mercurial/examples/zsh_completion.gz.