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

时间:2011-09-13 07:17:58

标签: mercurial zsh tab-completion

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

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

repo/
    .hg/
    file1.txt
    file2.txt <-- modified

然后在Bash中执行此操作:

% hg commit -m "changed file2.txt" <TAB>

自动完成file2.txt

与分支相同 - 假设我有defaultdevcrazy分支,Bash知道如何完成分支名称:

% hg update cr<TAB>

将分支名称填写为crazy

基本上我要问的是如何恢复此功能 - 哪个文件可以处理等等。

1 个答案:

答案 0 :(得分:5)

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