Tab-Vervollständigung für Mercurial in Bash?

7

Mit Subversion in der Befehlszeile werden verfügbare Unterbefehle usw.

$ svn c<tab>
cat         checkout    cl          co          copy        
changelist  ci          cleanup     commit      cp  

Mercurial hingegen scheint keine Tab-Vervollständigung zu haben, zumindest nicht sofort:

$ hg c<tab> 
[nothing happens]

Ist die Bash-Fertigstellung für Mercurial überhaupt verfügbar? Was ist der einfachste Weg, um es zum Laufen zu bringen? Ich bin auf Ubuntu 11.04.

Jonik
quelle

Antworten:

4

In Ubuntu 10.04 funktioniert es für mich sofort. In Bash:

$ hg c
cat       checkout  clone     commit    copy

Oder in zsh:

$ hg c
cat       checkout  ci        clone     co        commit    copy      cp

Möglicherweise fehlt ein Paket (oder Sie haben einen Fehler festgestellt).

Auf meinem System wird die Abschlussdatei vom Quecksilberpaket bereitgestellt:

$ dpkg -S /etc/bash_completion.d/mercurial 
mercurial: /etc/bash_completion.d/mercurial
maxschlepzig
quelle
Danke - der Grund, warum es bei mir nicht funktionierte, war, dass ich gerade das "mercurial" -Paket installiert hatte und bashrc nicht erneut gelesen wurde! Wenn Sie also beispielsweise eine neue Terminal-Registerkarte öffnen oder einfach nur tippen bash, funktioniert dies. Ich bin froh, dass es funktioniert, ohne dass zusätzliche Anpassungen erforderlich sind. :)
Jonik
7

Mercurial versendet seine eigene Bash-Vervollständigung - siehe Contrib / bash_completion im Tarball. Zumindest unter openSUSE wird diese Datei unter /etc/bash_completion.d/ installiert, sodass die Bash-Vervollständigung für mercurial automatisch funktioniert. Möglicherweise müssen Sie das Quecksilberpaket von Ubuntu überprüfen, wenn das Abschlussskript installiert wird.

Petr Uzel
quelle
+1, die Datei /etc/bash_completion.d/mercurialscheint tatsächlich auch im "mercurial" -Paket unter Ubuntu verfügbar zu sein. Siehe meinen Kommentar zu maxschlepzigs Antwort ...
Jonik
6

Ich habe mercurial aus einer Quellversion erstellt und musste das Abschlussskript selbst installieren. So geht's:

$ cd
$ wget http://selenic.com/hg/raw-file/25e4d2f35965/contrib/bash_completion -P opt/packages/mercurial
$ echo ". opt/packages/mercurial/bash_completion" >> .bashrc
$ . opt/packages/mercurial/bash_completion

Der Abschluss ist eingeschaltet.

Paolo
quelle