Ich hatte das gleiche Problem mit OSX El Capitan und Ubuntu 16.04.
In Ubuntu habe ich ursprünglich manuell gepatcht /usr/share/zsh/functions/Completion/Unix/_hg
. Da Systemdateien jedoch unter OSX geschützt waren, habe ich oh-my-zsh eingerichtet, was wahrscheinlich eine bessere Lösung ist als das Berühren von zsh-Systemdateien. Sie können diese Änderungen direkt an der _hg
Datei vornehmen, wenn Sie zsh nicht verwenden möchten.
Nach der Installation von oh-my-zsh
I kopiert /usr/share/zsh/functions/Completion/Unix/_hg
zu ~/.oh-my-zsh/custom/plugins/hg/_hg
.
Dann wurde die _hg
Datei geändert und die Funktion _hg_tags () durch ersetzt
_hg_tags() { local expl typeset -a hglabels hglabels=( ${(f)"$(_hg_cmd debugnamecomplete -q 2>/dev/null)"} ) _wanted labels expl 'labels' compadd -a - hglabels }
Damit zsh geladen werden kann, ändern Sie es ~/.zshrc
und fügen Sie hg
es dem plugins=(... hg)
Abschnitt hinzu.
Möglicherweise möchten Sie andere Funktionen ändern, um _hg_tags zu verwenden. Ich fand heraus, dass nach der Verwendung etwas _hg_cmd_merge
aktualisiert werden musste _hg_tags
.
_hg_cmd_merge() { _arguments -s -w : $_hg_global_opts \ '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \ '(--rev -r 1)'{-r,--rev}'[revision to merge]:revision:_hg_tags' \ '(--preview -P)'{-P,--preview}'[review revisions to merge (no merge is performed)]' \ ':revision:_hg_tags' }