Vervollständigung für Git-Befehle

Ich bin kürzlich von einer Ubuntu-Box in den letzten 7 Jahren auf einen Mac umgestiegen. Ich habe andere Beiträge gelesen, z. B. Wechsel von Ubuntu zu OS X und ich bin verloren und Was ist der Unterschied zwischen iTerm2 und Terminal?

Warum vervollständigen iTerm2 und Terminal die Argumente für einen Befehl nicht?

Z.B. Wenn ich gi+ mache Tab, wird dieses Wort automatisch vervollständigt, gitwas gut ist. Wenn ich ein Leerzeichen hinzufüge und versuche remo+ Tab, warum bekomme ich es nicht automatisch vervollständigt, um es remotein Ubuntu zu mögen. Ich muss alles manuell nach dem Wort eingeben git. Gleiches gilt für andere Befehle.

Mache ich etwas falsch oder übersehe ich etwas?

(Bitte beachten Sie, dass ich nicht über die Verknüpfung cmd+ spreche, ;die zuvor eingegebene Einträge in iTerm2 automatisch vervollständigt.)

Terminal und iTerm2 vervollständigen den Befehl nicht. Es ist die Shell und ihre Add-ons, die in Linux und OSX gleich sein können, also müssen Sie angeben, wie Ihr vollständiges Setup in Linux ist, und das in OSX duplizieren.
Sie möchten die automatische Vervollständigung für Git – siehe apple.stackexchange.com/q/55875/24565

Antworten (6)

Der einfachste Weg, um die automatische Vervollständigung unter OS X zu erhalten, besteht darin, Ihre Shell auf zsh.

Sie können die Dinge testen, indem Sie zshiTerm und Terminal ausführen, bevor Sie den obigen Wechsel vornehmen. Wenn Sie wirklich dabei bleiben wollen, bashkönnen Sie mit diesen beiden Fragen beginnen:

Süss! zsh ist gut! Ich habe mir nie die Mühe gemacht, von bash zu wechseln :). Update:Die Verwendung von zsh mit oh-my-zsh ist erstaunlich.
ahhh liebe oh-my-zsh

Eine Lösung beim Wechsel von Ubuntu ist die Verwendung von Homebrew, einem Paketmanager für Mac OSX . Insbesondere für githaben Sie eine Reihe von Ergänzungen einschließlich der Bash-Vervollständigung hinzugefügt. Dies gilt für andere Programme, die für Entwickler fehl am Platz sind, wie make.

In 2 Schritten:

  1. mit installierenruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  2. Führen brew doctorSie aus, um Ihren Pfad richtig einzurichten
  3. Git- und Bash-Vervollständigung installieren:brew install git bash-completion
  4. Fügen Sie den Befehl return im vorherigen Schritt in Ihre .bash_profile.
  5. Starten Sie Ihre Bash-Sitzungen neu, sobald die neuen Tools und die Konfiguration in Ihr Dateisystem geschrieben wurden.

Mehr zu diesem HowTo .

Ich habe zwei Vorschläge:

  1. Verwenden Sie Fisch , es ist wirklich einfach und leicht

    a. Erweitern Sie es mit oh-my-fish

  2. zsh mit oh-mein-zsh. zsh ist bereits installiert, sodass Sie nicht viel tun müssen.

    a.chsh -s /bin/zsh

    b. abmelden und erneut anmelden

    c. Führen Sie dies aus, um oh-my-zsh zu installieren wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh. Weitere Informationen finden Sie hier: https://github.com/robbyrussell/oh-my-zsh

Benutze ich oh-my-zshaber fishist auch super.

Dies umgeht das Problem etwas, falls jemand die von Apple bereitgestellte Version von Git auf seinem System behalten möchte.

Sie können Aliase in der .gitconfig-Datei in Ihrem Home-Verzeichnis für kürzere Git-Befehle erstellen. Zum Beispiel habe ich git so eingerichtet, dass es stattdessen git stläuft .git status

Beispiel-Aliase in .gitconfig:

[alias]
    co = checkout
    ci = commit
    st = status
    br = branch

Eine Option, die hilfreich sein könnte, ist die Verwendung von git.git-completion.bash autocompletion für bash .

Sie können damit Git-Befehle eingeben und dann eine automatische Vervollständigung für den Remote-Namen (z. B. „origin“ oder „heroku“) und dann (und noch wichtiger) für die Namen der Repository-Zweige durchführen.

Siehe https://apple.stackexchange.com/a/55886/24565

Laden Sie die Datei von
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash herunter

Für diejenigen, die nach einer Befehlsvervollständigungslösung für Bash suchen, die so einfach zu verwenden ist wie zsh + oh-my-zsh, gibt es jetzt das Projekt bash-it . Was, in seinen eigenen Worten, „eine schamlose Abzocke von oh-my-zsh“ ist – daran ist wirklich nichts auszusetzen!

Es richtet eine Plugin-ähnliche Architektur wie oh-my-zsh ein, in der Sie Dinge einfach in und aus Ihrer Umgebung bringen und neue Dinge durch Synchronisierung mit ihrem Github-Projekt erhalten können.

Die Installation erfordert drei Schritte:

  1. Überprüfen Sie einen Klon dieses Repos:git clone https://github.com/revans/bash-it.git ~/.bash_it
  2. Ausführen ~/.bash_it/install.sh(es sichert automatisch Ihre ~/.bash_profile)
  3. Bearbeiten Sie Ihre ~/.bash_profileDatei, um bash-it anzupassen.

Wenn Sie Angst vor einem vollständigen Wechsel zu zshhaben, bash-itist , ein guter Mittelweg, der Sie auf Trab hält, Ihnen bashaber viele leistungsstarke Plugins bietet, mit denen Sie Ihre Umgebung erweitern können.