Artikelformat

Howto: iTerm2 · Pimp your macOS Terminal

Nachdem hin und wieder mal Nachfragen zum Aussehen meines Terminal gekommen sind, möchte ich heute eine etwas ausführlichere Anleitung schreiben.

Bildschirmfoto 2017-04-10 um 20.28.56_1300px

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

Bildschirmfoto 2017-04-11 um 02.06.15-minishadow

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.

Bildschirmfoto 2017-04-08 um 00.12.31-minishadow_1300px

Wenig überraschend ist das Ergebnis ein leicht verändertes Theme.

Bildschirmfoto 2017-04-11 um 02.09.11-minishadow

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.

Bildschirmfoto 2017-04-10 um 04.16.58-minishadow

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.

Bildschirmfoto 2017-04-11 um 02.10.23-minishadow

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)

Bildschirmfoto 2017-04-11 um 11.52.32-minishadow

Startet man iTerm2 jetzt neu, ist die Ernüchterung zunächst groß…

Bildschirmfoto 2017-04-11 um 11.55.35-minishadow

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.

Bildschirmfoto 2017-04-08 um 00.46.05-minishadow_1300px

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.

Bildschirmfoto 2017-04-08 um 00.47.15-minishadow_1300px

Daraufhin wird aus dem einst kryptischen Aussehen eine wesentlich ansehnlichere Anzeige.

Bildschirmfoto 2017-04-11 um 11.55.53-minishadow

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

Bildschirmfoto 2017-04-08 um 00.39.50-minishadow_1300px

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.

Bildschirmfoto 2017-04-11 um 14.07.17-minishadow

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”

Bildschirmfoto 2017-04-11 um 15.04.17-minishadow

Daraufhin muss man iTerm2 neu starten und das user@hostname-Konstrukt ist verschwunden.

Bildschirmfoto 2017-04-11 um 15.04.52-minishadow

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

Bildschirmfoto 2017-04-11 um 15.14.25-minishadow_1300px

zsh-autosuggestions

Auf Basis der in der Vergangenheit eingegebenen Terminal-Kommandos versucht dieses Plugin vorherzusagen, was man aktuell eingeben möchte.

Bildschirmfoto 2017-04-11 um 16.05.38-minishadow

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

Bildschirmfoto 2017-04-11 um 16.19.49-minishadow

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)

Bildschirmfoto 2017-04-11 um 16.21.19-minishadow

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

Bildschirmfoto 2017-04-11 um 16.20.30-minishadow

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)

Bildschirmfoto 2017-04-11 um 16.21.48-minishadow

In diesem Sinne schon mal Frohe Ostern. Wir höhen uns vermutlich erst nach den Feiertagen wieder.

(inspired by)

Autor: Björn

Ich bin Björn und quasi der COO von aptgetupdateDE. Ich kümmere mich um die PR und allerlei Kontaktaufnahmen zu Herstellern und Softwareentwicklern. Erreichbar bin ich bei Twitter und natürlich per E-Mail.

11 Kommentare

  1. Zu Schritt 3:
    Eigentlich wird hier keine neue Shell installiert. macOS hat ab Werk mehrere Shells in /bin/ vorinstalliert und mit dieser Anleitung wird durch das ohmyzsh-Installationsskript die /bin/zsh als Login-Shell für den aktuellen User eingerichtet.
    Das geht im Terminal manuell per chsh oder in der GUI: https://superuser.com/questions/362372/how-to-change-the-login-shell-on-mac-os-x-from-bash-to-zsh
    Man kann auch eine neuere Version per z.B. homebrew installieren und /usr/local/bin/zsh als seine Login-Shell einstellen, aber früher gab es dabei wohl Probleme mit alten Binaries nach einem macOS Upgrade.
    Afair ist das auch der Grund, warum bei MacPorts nach einem macOS Upgrade alle Pakete neu gebaut werden sollen.

    Antworten
    • Stimmt natürlich. Vielen Dank für die Ergänzung. Hatte ich für den Artikel völlig verdrängt.

      Mit macOS Sierra wird die zsh-Version 5.2 ausgeliefert. Es funktioniert also auch direkt out-of-the-box. Über Homebrew ist allerdings bereits Version 5.3.1 verfügbar:

      brew install zsh

      Zeigt die installierte zsh-Version an:
      zsh --version

      Zeigt die Quelle der installierten zsh-Version an:
      which zsh

      Nutzt man die von macOS ausgelieferte Version sollte hier /bin/zsh stehen; für die Homebrew Version /usr/local/bin/zsh.

      Antworten
  2. Klasse Artikel!
    Zu ergänzen wäre u. U. noch, dass es Powerline Lösungen durchaus auch für die Bash gibt … z.B.
    https://github.com/banga/powerline-shell … wer aber im Terminal nicht ganz so zu Hause ist, kommt mit der Anleitung von Björn mit Sicherheit leichter ans Ziel.

    Danke für diesen schöööööönen Blog und gaaaaaaaanz viel Spaß beim Ostereier suchen!

    Antworten
  3. Wow, danke dir für die tolle Anleitung! :) Schick und funktional. Für mich seit Jahren endlich mal wieder was neues im Umfeld der Shell. Über die zsh war ich schonmal gestolpert, aber erst jetzt bin ich umgestiegen.

    Antworten
  4. Klasse Anleitung, vielen Dank :) Ich hab gestern ein bisschen rumgespielt und mir endlich mal die ZSH installiert und anschließend auch noch das Powerline-Theme für mich angepasst (Screenshot).

    Falls noch jemand Probleme bei der Powerline-Konfiguration (Fehldarstellungen bei Icons/ Design-Elementen) hat:
    Bei mir war ein Neustart von iTerm und source ~/.zshrc („Neu-Einlesen“ der ZSH-Konfiguration) nach jeder Änderung notwendig.

    Außerdem hat bei mir auch nicht jeder Powerline-Schrift funktioniert- im Endeffekt eigentlich nur die SouceCodePro für Powerline mit AwesomeFont Icons (d.h. initial waren bei mir- trotz Neustart etc. die Icons/ Gestaltungselemente kaputt).

    Antworten
    • Wer auch nich Probleme hat, die Gylphen unter Mac richtig angezeigt zu bekommen und vielleicht mit den Tipp von herrpaul_ (der mir auch weitergeholfen hat), sollte mal in der Datei ~/.oh-my-zsh/custom/themes/powerlevel9k/functions/icons.zsh schauen, welche Glyphen in der Datei für einen selber angezeigt werden.

      Ich hatte das Problem, dass ich POWERLEVEL9K_MODE falsch gesetzt hatte und hier anstelle „awesome-fontconfig“ nun „awesome-patched“ stehen habe.

      Ein Blick in die Datei hatte nämlich gezeigt, dass die Icons in dem Block korrekt angezeigt wurden, in den anderen Blöcken jedoch nicht. Nach einer Anpassung und einem Neustart von iTerm2 hat es dann wunderbar geklappt.

      Danke für den Tipp nochmal, ich wollte tatsächlich auch schon fragen, welcher Terminal dies ist und war schon bei .hyper aangelangt…aber so ist es perfekt :) Schöne Osern…

      Antworten
  5. Ein sehr guter Artikel zur Konfiguration von iTerm2 und darüber hinaus ein sehr guter Blog. Vielen Dank und schöne Ostertage.

    Antworten

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.