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, git
was gut ist. Wenn ich ein Leerzeichen hinzufüge und versuche remo
+ Tab, warum bekomme ich es nicht automatisch vervollständigt, um es remote
in 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.)
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 zsh
iTerm und Terminal ausführen, bevor Sie den obigen Wechsel vornehmen. Wenn Sie wirklich dabei bleiben wollen, bash
können Sie mit diesen beiden Fragen beginnen:
Update:
Die Verwendung von zsh mit oh-my-zsh ist erstaunlich.Eine Lösung beim Wechsel von Ubuntu ist die Verwendung von Homebrew, einem Paketmanager für Mac OSX . Insbesondere für git
haben 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:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew doctor
Sie aus, um Ihren Pfad richtig einzurichtenbrew install git bash-completion
.bash_profile
.Mehr zu diesem HowTo .
Ich habe zwei Vorschläge:
Verwenden Sie Fisch , es ist wirklich einfach und leicht
a. Erweitern Sie es mit oh-my-fish
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-zsh
aber fish
ist 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 st
lä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:
git clone https://github.com/revans/bash-it.git ~/.bash_it
~/.bash_it/install.sh
(es sichert automatisch Ihre ~/.bash_profile
)~/.bash_profile
Datei, um bash-it anzupassen.Wenn Sie Angst vor einem vollständigen Wechsel zu zsh
haben, bash-it
ist , ein guter Mittelweg, der Sie auf Trab hält, Ihnen bash
aber viele leistungsstarke Plugins bietet, mit denen Sie Ihre Umgebung erweitern können.
mmmmmm
Michael Durrant