Ich arbeite mittlerweile viel im Terminal. Nicht unbedingt, weil es sein muss – sondern weil es mir Spaß macht. Gerade für textbasierte Themen, wie das Blogging oder auch das Coden. Ich habe das Gefühl, mit dem Terminal mittlerweile schneller zu sein - produktiver. Und wenn ich etwas täglich benutze, dann soll es auch gut aussehen und sich gut anfühlen.
| macOS Standard-Terminal | Ghostty als Alternative |
|---|---|
![]() | ![]() |
Als ich anfing, mich immer mehr im Terminal zu bewegen, fand ich mich also irgendwann - natürlich - im Rabbit Hole der Terminal-Konfiguration wieder. Doch viele Tools blähen sich über die Zeit immer weiter auf. Es soll (und muss?!) immer mehr abgedeckt werden. Das war auch das Problem mit dem Editor meiner Wahl, VS Code. Auch dieser entwickelt sich immer mehr vom schlaken Editor, der er mal war, zu einem aufgeblähten Code Processor. Mit meinem Terminal sah ich also die Chance, wieder zu entschlacken. Mein Ziel war ein schnelles, schlankes und trotzdem schönes, sowie produktives Terminal!
Ich habe festgestellt, die beiden Anforderungen schließen sich auch nicht aus. In diesem Beitrag will ich dir also zeigen, wie ich von einem Standard Terminal zu einer schönen Arbeitsumgebung gekommen bin. Die Grundvoraussetzung für alles, was folgt, ist Homebrew. Falls du Homebrew noch nicht installiert hast, findest du auf der verlinkten Seite einen einzeiligen Installationsbefehl. Das dauert nur einen Moment und danach können wir loslegen.
Was wir installieren
- Ghostty – Ein moderner Terminal-Emulator
- Starship – Der hübsche Prompt
- Fastfetch – Systeminfos beim Start
- eza – ls mit Farbe und Icons
- ZSH Syntax Highlighting & Autocomplete
- NeoVim – Das Herzstück
- Bonus: Das Installations-Skript
1) Ghostty – Ein moderner Terminal-Emulator
Vor allem anderen brauchen wir erstmal ein Terminal, das unseren Anforderungen entspricht. Das Standard-Terminal von macOS ist in Ordnung, aber Ghostty ist mehr als das.
Ghostty ist GPU-beschleunigt und nutzt plattformspezifische Technologien: Unter macOS läuft es auf Swift und AppKit, also nativ und ohne Electron-Overhead. Entwickelt wurde es von Mitchell Hashimoto, dem Gründer von HashiCorp. Wenn jemand weiß, wie man gute Tools baut, dann er. Ziel für Ghostty war es, ein Terminal (bzw. ein Terminal-Emulator) zu bauen, welches neben der Geschwindigkeit auch möglichst wenig Bedarf für Konfiguration hat. Und sollte man etwas konfigurieren wollen, geschieht dies ganz einfach textbasiert über die Datei ~/.config/ghostty/config. Kein GUI, keine Maus – einfach eine Datei editieren und fertig.
Die Installation läuft über Homebrew:
| |
Danach einfach Ghostty öffnen und mit dem Rest weitermachen.
2) Starship – Der hübsche Prompt
Das Erste, was du im Terminal siehst, ist der Prompt. Am besten sieht dieser also gut aus, zeigt dir aber auch relevante Infos an. Starship ist dabei meine klare Empfehlung: leichtgewichtig, schnell und mit einer Menge Presets, die du sofort übernehmen kannst.
Installation:
| |
Ich nutze das Gruvbox Rainbow Preset, das ich mit einem einzigen Befehl anwende:
| |
Damit wird die Preset-Konfiguration direkt als starship.toml gespeichert. Danach muss Starship noch in der ~/.zshrc aktiviert werden:
| |
Beim nächsten Öffnen des Terminals begrüßt dich ein deutlich ansprechenderer Prompt.
3) Fastfetch – Systeminfos beim Start
Kennst du diese Terminal-Screenshots, bei denen beim Start ein hübsches System-Info-Panel erscheint? Das macht Fastfetch. Es zeigt beim Starten des Terminals Infos wie Betriebssystem, CPU, RAM und mehr an.
Alternativen wären neofetch (der Klassiker, aber nicht mehr aktiv gepflegt) oder fetch. Wenn du dir unsicher bist, welches Tool für dich passt: Auf Reddit gibt es einen Vergleich der drei, der dir die Entscheidung abnehmen kann. Ich habe mich für Fastfetch entschieden, weil es schlank wirkt und aktiv weiterentwickelt wird.
| |
In der ~/.zshrc reicht eine einzige Zeile, damit Fastfetch bei jedem neuen Terminal-Fenster ausgeführt wird:
| |
4) eza – ls mit Farbe und Icons
Das gute alte ls ist seit Jahrzehnten dabei, aber schön ist es nicht. eza ist ein moderner Ersatz: farbig, mit Datei-Icons, mit Git-Status-Anzeige und jeder Menge nützlicher Parameter.
| |
Damit ich eza nicht immer von Hand mit den richtigen Parametern aufrufen muss, habe ich ein paar Aliases gesetzt. Die gehören in die ~/.zshrc:
| |
Was die einzelnen Aliases machen:
ls– Überschreibt das Standard-lsmit einer ausführlichen, farbigen Liste inklusive Icons und Header. Auch versteckte Dateien werden angezeigt.ll– Wiels, aber als Grid-Ansicht und mit der Konfiguration, Ordner vor Dateien aufzulisten.lt– Zeigt eine Baumansicht, zwei Ebenen tief, ebenfalls mit Icons. So siehst du direkt die Ordner und Dateien innerhalb der Ordner auf der aktuellen Ebene.
5) ZSH Syntax Highlighting & Autocomplete
Ein No-Brainer.
zsh-autosuggestions zeigt dir während des Tippens Vorschläge aus deiner Befehlshistorie an, die du mit der Pfeiltaste rechts übernehmen kannst. zsh-syntax-highlighting färbt deine Eingaben ein: Grün, wenn der Befehl bekannt ist – Rot, wenn er es nicht ist. Beide zusammen sparen täglich ein paar unnötige Enter-Drücke.
| |
Wichtig: Dieser Block muss ans Ende der ~/.zshrc. Die Plugins müssen als letztes geladen werden, damit sie korrekt funktionieren.
| |
6) NeoVim – Das Herzstück
Jetzt kommen wir zum eigentlichen Kern des Setups. NeoVim ist ein moderner Fork von Vim, der sich durch eine aktive Community und ein robustes Plugin-Ökosystem auszeichnet. Wer Vim kennt, findet sich sofort zurecht. Wer Vim nicht kennt: Wenn du anfängliche Schmerzen gern durchstehst, um dann mit starker Produktivität belohnt zu werden, lohnt sich das Ausprobieren.
Der Unterschied zu einem normalen Texteditor liegt bei NeoVim in den Plugins. Damit wird aus dem Terminal-Editor ein vollständig konfigurierbares Werkzeug.
| |
init.lua – Die Grundkonfiguration
Die Konfiguration von NeoVim liegt in ~/.config/nvim/init.lua. Diese Datei ist der Einstiegspunkt für alles. Bei mir sieht sie so aus:
| |
Die vier vim.cmd-Zeilen setzen Tabs auf 2 Spaces – meine Präferenz. Das require("config.lazy") lädt den Plugin-Manager, um den es im nächsten Schritt geht.
lazy.nvim – Der Package Manager
Plugins in NeoVim brauchen einen Package Manager. Ich nutze lazy.nvim, weil er Plugins erst lädt, wenn sie wirklich gebraucht werden (lazy loading), was den Start beschleunigt. Er scheint auch der aktuell “Standard” der Community zu sein.
Installiert wird der Package Manager laut empfohlener Anleitung in zwei Schritten. Den ersten haben wir eben bereits erledigt, dies war require("config.lazy") in der init.lua.
Als zweites brauchen wir die Konfigurationsdatei selbst: ~/.config/nvim/lua/config/lazy.lua (der Pfad entspricht dem require("config.lazy") in der init.lua). Diese braucht folgenden Inhalt (Kopie aus dem Installationsskript der Anleitung, gern prüfen oder von dort beziehen):
| |
Beim ersten Start von NeoVim klont sich lazy.nvim selbst aus GitHub, falls es noch nicht vorhanden ist. Dann importiert es alle Plugin-Definitionen aus dem plugins-Ordner – den wir gleich anlegen. Solange dieser Ordner noch nicht existiert, kann es beim ersten Start zu einem unkritischen Fehler kommen. Keine Sorge, das beheben wir gleich.
Außerdem legen wir mit diesem Skript den <leader> auf die Leertaste. Diese Info wird gleich noch wichtig. Plugins können über Tastaturkürzel geöffnet werden. Diese Kürzel benötigen jedoch eine Art “Trigger”, eine Taste, die sagt “hey, nun kommt ein Plugin-Kürzel” - und genau das ist die Leertaste nun.
Gruvbox Material – Das Colorscheme
Farben machen einen Unterschied. Ich habe mich für Gruvbox Material entschieden – warme Erdtöne, angenehm für lange Sessions. Die Plugin-Definition kommt in eine neue Datei: ~/.config/nvim/lua/plugins/gruvbox-material.lua
| |
lazy = false und priority = 1000 sorgen dafür, dass das Theme als erstes geladen wird – vor allen anderen Plugins. Sonst kann es zu einem kurzen Aufflackern des Standard-Themes beim Start kommen.
Telescope – Fuzzy Finder
Das letzte Plugin und für mich das produktivste: Telescope. Ein Fuzzy Finder erlaubt es, Dateien und Text zu suchen, ohne den genauen Namen zu kennen. Man tippt ein paar Buchstaben, und Telescope zeigt alle Treffer im aktuellen Projekt in Echtzeit an.
Damit Telescope auch im Datei-Inhalt suchen kann, braucht es zwei externe Tools:
| |
Die Plugin-Konfiguration kommt in ~/.config/nvim/lua/plugins/telescope.lua:
| |
Beachte bitte, dass wir - so ist es von den Entwicklern empfohlen - eine exakte Version gesetzt haben. Willst du das Tool aktualisieren, muss die Version manuell angepasst werden. Danach setzen wir die vier Hotkeys und hier siehst du den <leader> wieder (bei uns die Leerstaste (Space):
| Shortcut | Funktion |
|---|---|
Space + ff | Dateien suchen |
Space + fg | Volltextsuche im Projekt (Live Grep) |
Space + fb | Zwischen offenen Buffern wechseln |
Space + fh | NeoVim-Hilfe durchsuchen |
Beim nächsten Start von NeoVim lädt lazy.nvim alle Plugins automatisch herunter und installiert sie. Das passiert nur einmal, danach sind sie gecacht.
Bonus: Das Installations-Skript
Wer das Setup auf einem neuen Rechner nicht Schritt für Schritt wiederholen möchte, kann es mit diesem Skript automatisieren. Es prüft zunächst, ob Homebrew installiert ist, installiert dann alle Abhängigkeiten, konfiguriert die ~/.zshrc und legt alle NeoVim-Konfigurationsdateien an.
Wichtiger Hinweis: Das Skript hängt die .zshrc-Blöcke einfach ans Ende der Datei an. Wenn du die Einträge bereits manuell hinzugefügt hast, entstehen Duplikate. Das Skript legt vorher automatisch ein Backup an – schau dort nach, falls etwas schiefläuft.
| |
Das Skript speichern (z.B. als terminal-setup.sh), ausführbar machen und starten:
| |
Fazit
Damit ist mein kleines “Produktivitäts-und-Kosmetik-Setup” für das Terminal abgeschlossen. Ghostty startet flott, Starship macht den Prompt angenehm lesbar, Fastfetch begrüßt mich mit einem kleinen Systemüberblick und eza macht ls endlich schön. Die ZSH-Plugins ersparen mir täglich ein paar unnötige Tipp-Fehler.
NeoVim kann die Produktivität echt fördern, wenn man bereits ist, anfangs deutlich ineffizienter zu arbeiten. Die Shortcuts müssen sich einprägen und Muscle Memory muss sich aufbauen. Vim und auch NeoVim können anfangs echt frustrierend sein. Aber mit Telescope hat sich das in kurzer Zeit mehr als ausgezahlt. Die Volltextsuche über ein ganzes Projekt aus dem Terminal heraus ist schlicht praktisch.
Das Installations-Skript macht das alles auf einem neuen Rechner zu einem Fünf-Minuten-Job. Und wer mag, kann es als Ausgangspunkt für sein eigenes Terminal-Setup nehmen und es von dort aus nach eigenem Geschmack erweitern. ☕️


