Nachdem hin und wieder mal Nachfragen zum Aussehen meines Terminal gekommen sind, möchte ich heute eine etwas ausführlichere Anleitung schreiben.
Direkt vorneweg: bei der App handelt es sich nicht um das macOS Terminal, sondern iTerm2; einem Terminal-Ersatz für macOS.
Die App bietet vielerlei Features, die man in Apples Variante vergeblich sucht. Es soll heute aber nicht um einzelne Features, sondern vielmehr den optischen Vorzügen gehen.
Schritt 1 – iTerm2 installieren
Bevor es gleich ans Eingemachte geht, muss man iTerm2 erst einmal installieren.
Neben der Installation über Homebrew, steht auch ein herkömmlicher Download zur Verfügung, mit dem man die App ganz normal in den Programme-Ordner von macOS verschieben muss.
brew cask install iterm2
Schritt 2 – Theme installieren
Da sich iTerm2 in den Standardeinstellungen optisch kaum vom macOS Terminal unterscheidet, folgt mit der Installation eines Themes die erste Anpassung.
Wer viel Zeit hat, kann sich einmal durch die verfügbaren iTerm2-Color-Schemes klicken und seinen Favoriten selber wählen. Ich persönlich bin mit dem Solarized Dark Theme (Patched) sehr zufrieden, welches in den iTerm2 Einstellungen unter Profiles > Colors > Color Presets… zunächst importiert und danach ausgewählt werden muss.
Wenig überraschend ist das Ergebnis ein leicht verändertes Theme.
Schritt 3 – Shell installieren
Anschließend geht es an die Installation der Z-Shell (zsh). Hier gibt es verschiedene Configuration Frameworks; das bekannteste und am meisten genutzte ist mit Sicherheit Oh-My-Zsh.
Neben einigen funktionalen Vorteilen gegenüber bash lässt sich (oh-my-)zsh durch die riesige Open-Source-Community und damit einhergehenden Plugins einfach sehr gut anpassen. Gerüchten zufolge soll zsh auch schneller als bash sein.
Die Installation erfolgt auf jeden Fall über das Terminal:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Falls Xcode oder zumindest die Command Line Developer Tools noch nicht installiert sind, bricht die Installation an dieser Stelle mit einem Popup ab.
Hier muss man einfach nur auf die Schaltfläche Installieren klicken und danach den Befehl zur Installation von oh-my-zsh erneut ins Terminal eingeben.
Hinweis: Zur Änderung der Shell wird das Passwort des angemeldeten Nutzers benötigt.
Schritt 4 – zsh-Theme anpassen
Nachdem die Shell-Installation erfolgreich abgeschlossen wurde, muss das zu verwendende Theme mit einem Editor in der oh-my-zsh-Konfigurationsdatei angepasst werden.
Das funktioniert generell mit jedem Editor; um das Terminal allerdings nicht groß zu verlassen, empfehle ich vim, welches direkt in macOS zur Verfügung steht.
vim .zshrc
Kurzer vim-Exkurs
Die Pfeiltasten dienen in diesem Editor der Navigation. Dazu muss man natürlich die Shortcuts wissen; die hier benötigten sind:
yy → Zeile in die Zwischenablage kopieren
p → Zeile aus der Zwischenablage einfügen/duplizieren
i → aktiviert den Einfügen-Modus von Text
Der in diesem Schritt benötigte Text wird dann ganz normal über die Tastatur eingegeben. Mit der ESC-Taste verlässt man den Text-Einfügen-Modus wieder.
ZSH_THEME="agnoster"
:x → Änderungen speichern und vim beenden
:q! → vim beenden ohne die Änderungen zu speichern (nur im Fall der Fälle notwendig)
Startet man iTerm2 jetzt neu, ist die Ernüchterung zunächst groß…
Schritt 5 – Schriftart installieren
Dass die Anzeige im vierten Schritt etwas kryptisch aussieht, liegt am verwendeten (falschen) Font.
Nun gibt es eine ganze Reihe an Powerline Fonts. Ich persönlich empfehle Melso Dotted; speziell Meslo LG M DZ Regular for Powerline → bei GitHub einfach auf die Schaltfläche View Raw klicken und anschließend den heruntergeladenen Font über den Finder systemweit in macOS installieren.
Nachdem die neue Schriftart installiert ist, öffnet man erneut die iTerm2 Einstellungen und wählt diese unter Profiles > Text > Change Font aus.
Die Schriftgröße ist bei mir zudem auf 14 Pixel gesetzt.
Daraufhin wird aus dem einst kryptischen Aussehen eine wesentlich ansehnlichere Anzeige.
Schritt 6 – Powerlevel9k theme for zsh (optional)
Wem das im vierten Schritt aktivierte agnoster-Theme nicht gefällt oder ausreicht, sollte sich das Powerlevel9k-Theme genauer ansehen.
Die Installation erfolgt wieder über das Terminal; die Aktivierung des Themes über die oh-my-zsh-Konfigurationsdatei.
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Das agnoster-Theme muss jetzt natürlich per # auskommentiert werden. Die neu in der Konfigurationsdatei einzufügende Zeile lautet:
ZSH_THEME="powerlevel9k/powerlevel9k"
Was durch das Anflanschen von Zeit & Co. erst mal wenig spektakulär aussieht, lässt sich in der Konfiguration zum Theme umfangreich anpassen. Wer daran Interesse hat, muss sich hier einfach mal selbst einlesen.
Weitere Tweaks
Wie ich bereits am Anfang irgendwo schrieb, gibt es unzählige Anpassungsmöglichkeiten sowie Plugins für zsh. Nachfolgend vier kleine Beispiele:
custom prompt styles
Per default wird im Terminal immer user@hostname angezeigt. Das ist in der Regel unnötig und bläht das Terminal nur unnötig auf.
Auch hier führt der Weg wieder über die oh-my-zsh-Konfigurationsdatei, der folgende Zeile hinzugefügt werden muss:
DEFAULT_USER=”$USER”
Daraufhin muss man iTerm2 neu starten und das user@hostname-Konstrukt ist verschwunden.
word jumps
Per default ist das Springen zwischen den Worten mit Opt + → oder ← nicht möglich.
Für die Aktivierung muss man die iTerm2 Einstellungen öffnen und zu Profiles > Keys navigieren. Hier müssen, wie im Screenshot zu sehen, über das Plus-Zeichen zwei neue Sequenzen angelegt werden:
Wortsprung rechts
⌥→
Send Escape Sequence
f
Wortsprung links
⌥←
Send Escape Sequence
b
zsh-autosuggestions
Auf Basis der in der Vergangenheit eingegebenen Terminal-Kommandos versucht dieses Plugin vorherzusagen, was man aktuell eingeben möchte.
Die Installation kann über Homebrew oder als Direktdownload per Terminal erfolgen:
Homebrew
brew install zsh-autosuggestions
Damit das Plugin aktiviert wird, muss man erneut die oh-my-zsh-Konfigurationsdatei editieren und folgende Zeile am Ende der Datei hinzufügen:
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
Direktdownload
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
Zur Aktivierung des Plugins muss man in der oh-my-zsh-Konfigurationsdatei die Sektion plugins=(git)
suchen und diese erweitern:
plugins=(git zsh-autosuggestions)
zsh-syntax-highlighting
Dieses Plugin kümmert sich um Syntax Highlighting. Auch hier kann die Installation wieder über Homebrew oder als Direktdownload per Terminal erfolgen:
Homebrew
brew install zsh-syntax-highlighting
Die Aktivierung erfolgt analog zum Autosuggestions-Plugin am Ende der oh-my-zsh-Konfigurationsdatei:
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Direktdownload
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
Auch hier erfolgt die Aktivierung analog zum Autosuggestions-Plugin.
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
In diesem Sinne schon mal Frohe Ostern. Wir höhen uns vermutlich erst nach den Feiertagen wieder.
(inspired by)