ZShell中的Mercurial分支/文件名称完成

sa1*_*125 2 mercurial zsh tab-completion

我一直在使用Zsh作为Bash的替代品.有一件事情不再适用,那就是为mercurial完成分支和未提交的文件名.

如果以前(bash)我有以下hg跟踪文件夹:

repo/
    .hg/
    file1.txt
    file2.txt <-- modified
Run Code Online (Sandbox Code Playgroud)

然后在Bash中执行此操作:

% hg commit -m "changed file2.txt" <TAB>
Run Code Online (Sandbox Code Playgroud)

自动完成file2.txt.

同样设有分公司-假设我有default,devcrazy分支机构,猛砸知道如何完成分支名称:

% hg update cr<TAB>
Run Code Online (Sandbox Code Playgroud)

完成了分支名称crazy.

基本上我要问的是如何恢复这个功能 - 哪个文件处理等等.

wRA*_*RAR 5

zsh使用其内部系统进行高级完成,同时bash使用单独的bash-completion软件.它们的配置是不兼容的,所以如果你想要一些功能工作,你需要为它找到第三方zsh完成模块或自己编写.mercurial包含一个示例zsh完成函数,它安装在我的系统上/usr/share/doc/mercurial/examples/zsh_completion.gz.