Sie verpassen ein besseres Mac-Terminal-Erlebnis

Als ich vor etwas mehr als einem Jahr die Welt von Linux verließ und Vollzeit auf OS X umstieg, vermisste ich vor allem die robuste Community und die Fülle an Optionen für Anpassungen, Optimierungen und Personalisierungen des Betriebssystems und der Workstation. Das Folgende ist ein Leitfaden, der meine Suche nach der perfekten OS X-Shell beschreibt – eine Kommandozeile, die sowohl funktional als auch schön ist, ohne das eine dem anderen zu opfern. Ich hoffe, dass meine Schritte einigen gleichgesinnten Reisenden etwas Zeit und Frustration auf ihrem Weg zu einer perfekten Terminal-Erfahrung ersparen.

Meile 1: Auswahl einer Shell-Anwendung

credit: hyper.is

Der erste und wichtige Schritt auf dieser Reise ist die Auswahl einer Terminalemulationsanwendung. In der Welt von OS X gibt es zwei dominante Spieler: iTerm und Hyper.

Dieser Artikel soll keine Anwendungsbesprechung sein, daher werde ich nicht näher auf die Funktionalität oder die fortgeschrittene Nutzung der beiden Programme eingehen, aber ich werde Folgendes sagen:

Generell ist iTerm die leistungsfähigere der beiden Optionen. iTerm verfügt über eine wirklich erstaunliche Auswahl an Optionen, Verknüpfungen und Fähigkeiten. Wenn Sie viel mit der Mac-Befehlszeile arbeiten, regelmäßig tmux verwenden oder erweiterte Konfigurationsmöglichkeiten benötigen, ist iTerm wahrscheinlich die bessere Wahl. Hier finden Sie iTerm.

Hyper ist ein neuerer Akteur auf diesem Gebiet, und obwohl es weniger Funktionen als iTerm hat, ist es unbestreitbar das schönere Terminal-Erlebnis. Das soll nicht heißen, dass iTerm hässlich ist, aber das Design von Hyper ist einfach schön.

Hyper basiert auf Web-Technologien (HTML, CSS, JS) und verfügt über eine robuste Sammlung von Themes, eine vielfältige Bibliothek von einfach zu installierenden Plugins und kontinuierliche Beiträge der Benutzer machen es zu einer interessanten und unterhaltsamen Wahl. Das Hyper-Team hat gerade die Version 2 veröffentlicht, die die Geschwindigkeit erhöht, nützliche UX-Verbesserungen hinzufügt, die Installation von Plugins weiter vereinfacht und vieles mehr. Informieren Sie sich hier über Hyper.

Eine der beiden Optionen wird eine gute Wahl sein. Beide Optionen können so konfiguriert werden, dass sie ein schönes, hochfunktionales Terminal-Erlebnis schaffen. Ich würde empfehlen, beide auszuprobieren – ich habe beide installiert und verwende sie für unterschiedliche Zwecke.

Hinweis: Wenn Ihnen keine der obigen Optionen zusagt oder Sie es vorziehen, bei nativen Anwendungen zu bleiben, funktioniert die in OS X integrierte Terminal.Anwendung, die mit OS X ausgeliefert wird, für die meisten oder alle Aufgaben, die wir im weiteren Verlauf des Artikels behandeln werden, sehr gut geeignet.

Meilenstein 2: Installation Ihrer Unix-Shell

Nachdem Sie sich für eine Terminal-Anwendung entschieden haben, müssen Sie als nächstes eine Unix-Shell auswählen. Dies ist eine notwendige Voraussetzung für das meiste, was folgen wird.

Es gibt drei große Auswahlmöglichkeiten in dieser Abteilung: Bash (OS X-Standard), Zsh und Fish. Jede Wahl hat unterschiedliche Vor- und Nachteile, aber für die Zwecke dieses Artikels werden wir mit zsh arbeiten.

Z-Shell, oder zsh, gibt es seit 1990 und hat eine große Anhängerschaft und eine Vielzahl von Plugins, Anleitungen und Mitwirkenden. Zu den Vorteilen von zsh gehören: verbesserte Vervollständigungen, Befehlshistorie, Globbing, Tastenkombinationen, Umgang mit Variablen und viele andere. Jeder dieser Punkte ist es wert, ein anderes Mal erforscht und erlernt zu werden.

Zsh Installation:

Zsh wird mit OS X ausgeliefert, ist jedoch eine ältere Version. I recommend installing the latest version using Homebrew, the Mac package manager.

If you have not heard of Homebrew, or do not have it installed, you can find it here.

  • To install zsh using Homebrew, enter the following into your terminal:

brew install zsh zsh-completions

  • Verify installation by entering the following:

zsh --version

expected result: 5.1.1 or newer.

  • Make zsh your system’s default shell:

chsh -s $(which zsh)

  • Verify that it worked:

echo $SHELL

expected result: /bin/zsh

If you get hung up anywhere during this process, or need additional help, check this for more information and a more detailed install guide.

After installing zsh, the first time zsh is ran, it will prompt you with a series of questions concerning configuration. Folgen Sie der Aufforderung bis zum Ende und nehmen Sie die gewünschten Änderungen vor. Es sind jedoch keine Änderungen erforderlich – die Standardeinstellungen funktionieren einwandfrei.

Meile 3: Auswahl eines Frameworks

credit: oh-my-zsh

Nach der Installation von zsh eröffnet sich eine ganz neue Welt von Frameworks, Plugins und Themes. Weit mehr, als in diesem Artikel behandelt werden kann. Für die Zwecke dieses Artikels werden wir das oh-my-zsh von Robby Russel als Framework verwenden. Es ist einfach zu installieren, hat einen robusten Funktionsumfang und ist im Allgemeinen sehr benutzerfreundlich.

Wenn oh-my-zsh nicht Ihr Ding ist, wird ein ähnliches Framework wie Prezto an seiner Stelle gut funktionieren. Wenn Sie eine schlankere Alternative bevorzugen, können Sie auch nur einen Plugin-Manager wie Antigen verwenden oder ganz auf ein Framework verzichten. Diese Entscheidungen liegen ganz bei Ihnen, und ich würde Sie ermutigen, mit verschiedenen Konfigurationen, Frameworks, Plugins und Änderungen herumzuspielen, um herauszufinden, was am besten zu Ihrem Arbeitsablauf und Ihren Bedürfnissen passt.

Installation von oh-my-zsh:

Gehen Sie zum oh-my-zsh Repository auf Github – hier.

Befolgen Sie die grundlegenden Installationsanweisungen im Repository oder siehe unten:

Installieren Sie über curl:

In Ihrem Terminal führen Sie aus:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Das obige Kommando klont und installiert oh-my-zsh. Wenn Sie fertig sind, können Sie es benutzen.

Oh-my-zsh-Konfiguration:

Zsh-Plugins können alle Arten von nützlichen Lösungen für den Arbeitsablauf, lustige Tweaks oder wichtige Funktionen hinzufügen. Hier sind ein paar für den Anfang:

zsh-nvm – zsh-Plugin für Node Version Manager (vorausgesetzt, Sie verwenden Node.js). Laden Sie es hier herunter.

zsh-syntax-highlighting oder fast-syntax-highlighting – fügt Echtzeit-Syntaxhervorhebung zu Befehlen hinzu, während sie im Terminal eingegeben werden – sehr empfehlenswert. Finden Sie es hier.

git – Abkürzungen und Lösungen für Git-Benutzer. Wird mit oh-my-zsh ausgeliefert.

Es gibt noch viele, viele weitere Plugins da draußen. Oh-my-zsh wird mit einer langen Liste von ihnen ausgeliefert (siehe hier). Auch dies ist eine Frage der persönlichen Konfiguration – nehmen Sie sich Zeit, um zu entscheiden, welches für Sie am besten geeignet ist.

Plugin-Installation:

Dieser Teil des Leitfadens bringt uns zu einem sehr wichtigen Teil des zsh-Konfigurationsprozesses: die zsh-Konfigurationsdatei, .zshrc.

Die .zshrc-Datei sollte beim ersten Start von zsh und/oder bei der Installation von oh-my-zsh erzeugt worden sein. Sie finden sie unter den versteckten Dateien in Ihrem Home-Verzeichnis.

Hinweis: Um die Anzeige versteckter Dateien in Ihrem Home-Verzeichnis zu aktivieren, geben Sie Folgendes in Ihr Terminal ein: defaults write com.apple.finder AppleShowAllFiles YES

Die .zshrc Datei ist der Ort, an dem der größte Teil unserer Prompt-Konfiguration stattfinden wird. Oh-my-zsh hat eine Standardkonfiguration mit Feldern für Thema, Plugins, Aliase und mehr erstellt.

Die Installation eines neuen Plugins ist ein einfacher Prozess. Wenn es sich um ein Plugin handelt, das mit oh-my-zsh ausgeliefert wurde, navigieren Sie einfach zum Abschnitt „plugins“ Ihrer .zshrc-Datei und geben Sie den Namen innerhalb der Klammern ein. Laden Sie Ihr Terminal neu, indem Sie zsh eingeben und es sollte funktionieren.

Für Plugins von Drittanbietern empfehle ich, den Installationsanweisungen im Repository des Plugins zu folgen. Der Installationsprozess für die meisten Plugins von Drittanbietern ist jedoch ziemlich einfach und sollte wie folgt ablaufen:

  1. Klonen Sie das Plugin und verschieben Sie die geklonten Dateien in Ihren /custom-Ordner innerhalb der oh-my-zsh-Installation, der sich in Ihrem Heimatverzeichnis befindet.
  2. In der .zshrc-Datei fügen Sie den Namen des Plugins innerhalb der Klammern im Feld „plugins“ hinzu, wie wir es oben getan haben.
  3. Reload zsh, und es sollte bereit sein, verwendet zu werden.

Note: if you run into any hangups in this process, please refer to the oh-my-zsh repository, or the third party plugin’s repository. Most of your troubleshooting needs should be addressed there. Additionally, there is a large community surrounding the use of these tools- if there is something you can’t immediately find in the repositories, a quick google search will likely turn up a long list of people asking and solving the same questions you have.

Mile 4: Spaceship Prompt Installation

credit: spaceship prompt

Now that we have installed zsh, a framework, and our plugins, we can now get to work configuring our command line via a theme/custom prompt.

Ihre Kommandozeile kann so aussehen, wie Sie es wollen – minimal, ausführlich, informativ, schön, pragmatisch oder alles zusammen. Für unsere Zwecke habe ich ein großartiges Thema für die zsh-Eingabeaufforderung ausgewählt: Spaceship. Es ist die beste Kombination der oben genannten Attribute, die mir bisher begegnet ist.

Das Github-Repository von Spaceship Prompt finden Sie hier.

Spaceship Prompt Installation:

Klone das Repository:

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Symlink spaceship.zsh-theme zu deinem oh-my-zsh custom themes Verzeichnis:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Setzen Sie ZSH_THEME="spaceship" im Abschnitt „Theme“ Ihres .zshrc.

Anpassung des Spaceship-Prompts:

Nachdem du deinen Prompt installiert hast, gibt es eine lange Liste von Anpassungen und Optimierungen, die du vornehmen kannst, um deinen Arbeitsablauf oder Stil anzupassen. Das Repository enthält eine Reihe von Dokumenten, die Ihnen einige der Möglichkeiten aufzeigen. Spend some time viewing the examples, or leave it as-is — the defaults are great.

My personal prompt is configured to display some custom icons and information:

Spaceship prompt in iTerm2

The above should give you an idea of some of the cool possibilities that you can create with Spaceship. To get your prompt looking like mine, a few steps must be followed:

The font I’m using iTerm is Monoid Nerd Font . In Hyper I am using nerd fonts‘ PowerlineSymbols and mononoki Nerd Font Mono . Use whichever fonts you personally like, however— a nerd font is required to properly use Spaceship prompt. Nerd-Fonts sind speziell gepatcht, um all die großartigen Symbole/Glyphen zu enthalten, die in diesem Artikel besprochen werden.

Finden Sie Nerd-Fonts hier und hier.

  1. Um Nerd-Fonts zu installieren:
  • Manuelle Installation – laden Sie die Font-Dateien herunter/klonen Sie sie. Das nerd fonts Repository enthält detaillierte Anweisungen zum Herunterladen des gesamten Pakets oder einzelner Schriften.
  • Navigiere in das Verzeichnis der neu heruntergeladenen Schriftart(en). Suchen Sie die eigentlichen Schriftdateien, die typischerweise mit .ttf enden – öffnen Sie gleichzeitig die native Anwendung „Font Book“, die mit OS X ausgeliefert wird.
  • Ziehen Sie die Schriftdateien ( .ttf ) direkt in die Liste der Schriftarten von Font Book. Ihr Cursor sollte sich beim Ziehen in ein grünes „+“-Symbol verwandeln. Lassen Sie den Cursor los, und die Schriften werden installiert.

3. Weitere Optionen für die Installation von Schriften sind im Github-Repository von nerd fonts beschrieben und umfassen die Installation über Homebrew, ein Installationsskript und einen Ad-hoc-Download per Curl. Jede hat ihre Vor- und Nachteile – ich empfehle, das Repository zu lesen, um zu entscheiden, was für deine Bedürfnisse am einfachsten/besten ist.

4. Nach dem Herunterladen und Installieren deiner Nerd-Fonts, öffne deinen Terminal-Emulator (iTerm oder Hyper) und drücke Command + , . Daraufhin werden Ihre Benutzereinstellungen geöffnet. In iTerm wird dies in Form eines GUI-Dialogfensters angezeigt. In Hyper öffnet sich die Hyper-Konfigurationsdatei .hyper.js in Ihrem Standard-Texteditor.

  • In iTerm können die Schriftarten in den „Profilen“ eingestellt werden -> {Name des Profils} {Name des Profils} -> Abschnitt „Text“. Navigieren Sie innerhalb von „Text“ zum Abschnitt „Schriftart“. Ändern Sie die Hauptschriftart in Ihre neue Nerd-Schriftart und markieren Sie das Kästchen „Eine andere Schriftart für Nicht-ASCII-Text verwenden“. Aktivieren Sie dieses Kästchen und auch das Kästchen „Ligaturen verwenden“. Setzen Sie die sekundäre Schriftart ebenfalls auf eine Nerd-Schriftart. See below:

Your configuration should be similar.

In Hyper, within your .hyper.js configuration file in your text editor, navigate to the fontFamily tag. Replace the defaults with the names of your new nerd font(s).

Note: if you are not a programmer, be careful with your use of quotation marks. Multiple word font names with spaces will need their own surrounding quotes.

Your configuration should look something like the below, specifically, the portion surrounded in the blue box (you may disregard the other fields):

pictured: vs code with monoid nerd font, material darker syntax theme.

Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:

  1. Within the nerd fonts website, roughly two-thirds of the way down, there is a scrollable field that displays glyphs/icons and their corresponding codes. Any of these icons can be used in your prompt using Spaceship and a nerd font. Scroll through and find one or two that you like.

Note: the four-character glyph/icon codes must be preceded by \u , as shown below.

  1. In Ihrer .zshrc-Datei fügen Sie nach dem Abschnitt „Theme“ Folgendes ein:
SPACESHIP_PROMPT_ADD_NEWLINE=”true”
SPACESHIP_CHAR_SYMBOL=” \uf0e7"
SPACESHIP_CHAR_PREFIX=”\uf296"
SPACESHIP_CHAR_SUFFIX=(" ")
SPACESHIP_CHAR_COLOR_SUCCESS=”yellow”
SPACESHIP_PROMPT_DEFAULT_PREFIX=”$USER”
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=”true”
SPACESHIP_USER_SHOW=”true”

Damit sieht Ihre Eingabeaufforderung genauso aus wie meine, vorausgesetzt, Sie haben eine Nerd-Schriftart installiert. Wenn Sie die Symbole in der Eingabeaufforderung ändern möchten, können Sie in den Feldern SPACESHIP_CHAR_SYMBOL= und SPACESHIP_CHAR_PREFIX= die Codes der oben erwähnten Nerd-Schriften eingeben. Sie können Logos von Programmiersprachen, Frameworks und Bibliotheken hinzufügen. Sie finden auch Glyphen, Pfeile, Blitze, Meteore – für diejenigen, die von der Anpassung besessen sind, gibt es eine Menge, mit dem sie arbeiten können.

4. Ein weiteres Element, das in meinem Terminal von Interesse sein könnte, sind die farbigen Ordner-/Dateisymbole. I’m using a ruby gem called „colorls“- which you can find here.

Colorls installation:

Colorls, once installed, adds some glyphs to your ls command, and can be configured to show informative reports, realign and reconfigure the output of ls, among many other options. Follow the installation instructions within the repository.

To get colorls to print every time the ls command is used, you will need to use an alias within your .zshrc file.

To configure this, head into your .zshrc file, and scroll to the very bottom.

Paste the following:

alias ls=’colorls — light — sort-dirs — report’
alias lc=’colorls — tree — light’

This will get your ls looking identical to mine. Additionally, inputting the lc command will print a tree-view version of ls. Als Warnung empfehle ich, dies nur bei kleineren Verzeichnissen zu tun – es kann beim Indizieren größerer Verzeichnisse langsam werden.

Abschließende Anmerkungen zu meinem Prompt:

In iTerm verwende ich ein Farbschema namens termnk – Sie finden es hier.

Eine lange Liste von iTerm-Farbschemata finden Sie hier.

Für Hyper ist meine Konfiguration wie folgt:

plugins: ,

Mile 5: Fazit: Tipps, Ressourcen und wie es weitergeht

An diesem Punkt sollten Sie über ein funktionierendes zsh-Terminal verfügen und einen guten Start für Ihre eigene individuelle Konfiguration haben. Nachdem Sie meine persönliche Konfiguration gesehen und möglicherweise Teile davon nachgebildet haben, sollten Sie jetzt eine gute Vorstellung von den schönen und endlosen Optionen haben, die für die zsh-Shell auf dem Mac zur Verfügung stehen. Dies ist jedoch nur der Anfang der Reise. Dieser Leitfaden erhebt keinen Anspruch auf Vollständigkeit – es gibt so viele weitere Möglichkeiten und wunderbare Ressourcen, um Ihre Shell und Ihren Arbeitsablauf so zu gestalten, wie Sie es wünschen, damit sie aussieht, sich anfühlt und funktioniert. Dieser abschließende Teil widmet sich einigen großartigen Ressourcen, mit denen Sie Ihr Lernen und Erforschen von hier aus fortsetzen können.

Empfohlene Lektüre:

Es gibt so viele weitere erstaunliche zsh-Plugins, die beim Suchen, Greppen, Hinzufügen von Bildschirmschonern zu Ihrem Terminal wie pipes.sh oder informativen On-Load-Eingabeaufforderungen wie Neofetch helfen können. Ich empfehle, sich durchzulesen und weitere Plugins zu finden, die zu Ihrem Arbeitsablauf passen.

Ein ähnliches Kompendium nützlicher Ressourcen rund um zsh.

Eine Community, die sich auf die Verbesserung/Anpassung von Unix konzentriert. Linux ist zwar die dominierende Kraft hier, aber eine schnelle Suche nach „OSX“ wird Ihnen einige inspirierende Beispiele liefern.

Wie bereits erwähnt, eine kuratierte Liste von Terminal-Frameworks, Erweiterungen und Ressourcen. Dies ist eine großartige Referenz – sehr empfehlenswert.

Eine interaktive Testanwendung, die eine Vorschau auf einige der besten verfügbaren Programmierschriften bietet. Die meisten/alle sind kostenlos und haben eine gepatchte Version zum Herunterladen von nerd fonts.

Die endgültige Liste von Hyper themes & plugins. Wenn du dich für Hyper entscheidest, sollte dies eine deiner ersten Anlaufstellen sein.

Fazit:

Erforsche weiter und arbeite an deiner Terminal-Erfahrung. Wenn Sie sich dafür begeistern können, wie Ihre Kommandozeile aussieht und sich anfühlt, wird es Ihnen helfen, den Umgang mit ihr und das Programmieren (falls zutreffend) zu erlernen, und es macht einfach Spaß.

Wenn immer mehr Benutzer in die Welt der Anpassung der Kommandozeile einsteigen, werden sicherlich weitere Optionen und Innovationen folgen. Obwohl Linux im Allgemeinen mehr Unterstützung für diese Art der Personalisierung bietet, hoffe ich, dass dies einigen Lesern die Augen für einige der großartigen Terminal-Konfigurationen geöffnet hat, die in OS X möglich sind.

Sehen Sie sich meine andere Arbeit an, die sich mit der Anpassung des Mac-Symbols & im Dock befasst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.