2

一段时间以来,我一直在使用 Zsh 作为 Bash 的替代品。不再有效的一件事是完成分支和未提交的 mercurial 文件名。

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

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

然后在 Bash 中执行此操作:

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

自动完成file2.txt

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

% hg update cr<TAB>

完成分支名称到crazy.

基本上我要问的是如何恢复这个功能——哪个文件/s负责这个等等。

4

1 回答 1

5

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

于 2011-09-13T08:35:33.747 回答