Mercurial Branch / Завершение имени файла в ZShell - PullRequest
2 голосов
/ 13 сентября 2011

Я уже некоторое время использую 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.

По сути, я спрашиваю, как восстановить эту функциональность - какие файлы позаботятся об этом и т. Д.

1 Ответ

5 голосов
/ 13 сентября 2011

zsh использует свою внутреннюю систему для расширенного завершения, в то время как bash использует отдельное bash-completion программное обеспечение для этого. Их конфигурация несовместима, поэтому, если вы хотите, чтобы какая-то функция работала, вам нужно найти сторонний модуль завершения zsh или написать его самостоятельно. mercurial содержит пример функции завершения zsh, она установлена ​​в моей системе как /usr/share/doc/mercurial/examples/zsh_completion.gz.

...