我一直在使用Zsh作为Bash的替代品。有一件事情不再适用,那就是为mercurial完成分支和未提交的文件名。
如果之前(bash)我有以下hg跟踪文件夹:
repo/
.hg/
file1.txt
file2.txt <-- modified
然后在Bash中执行此操作:
% hg commit -m "changed file2.txt" <TAB>
自动完成file2.txt
。
与分支相同 - 假设我有default
,dev
和crazy
分支,Bash知道如何完成分支名称:
% hg update cr<TAB>
将分支名称填写为crazy
。
基本上我要问的是如何恢复此功能 - 哪个文件可以处理等等。
答案 0 :(得分:5)
zsh
使用其内部系统进行高级完成,而bash
则使用单独的bash-completion
软件。它们的配置是不兼容的,所以如果你想要一些功能工作,你需要为它找到第三方zsh完成模块或自己编写。 mercurial
包含示例zsh完成功能,它作为/usr/share/doc/mercurial/examples/zsh_completion.gz
安装在我的系统上。