Ich verlasse Neovim und wechsle zu Zed
(stevedylan.dev)- Jede Entwicklerin und jeder Entwickler hat eine eigene Reise mit Texteditoren und durchläuft einen Prozess, bis das aktuell genutzte Tool gefunden ist. Solche Geschichten sind interessant und wecken große Wertschätzung für Entwickler-Tools und die Arbeit, die in sie investiert wurde
- Dieser Artikel wurde geschrieben, um Menschen mit Interesse an Entwickler-Tools die eigene Reise zu teilen und sie zu ermutigen, neue Tools auszuprobieren
Der Beginn der Reise mit Texteditoren
- Mit Atom angefangen und dabei die Grundlagen von HTML, CSS und Javascript gelernt
- Dann zu VSCode gewechselt, aber damals musste die Ehefrau den Laptop zur Bildbearbeitung nutzen, und das stattdessen verwendete MacBook litt unter Leistungseinbußen durch den Electron-Build von VSCode
- Dabei zufällig Vim entdeckt und von dem keyboard-zentrierten Workflow und der Geschwindigkeit begeistert, woraufhin das Lernen von Vim begann
- Anfangs durch Anpassen der Vim-RC genutzt, später über Videos von chris@machine auf Neovim aufmerksam geworden
- Neovim über Jahre genutzt und dabei eine hohe Produktivität erreicht. Viel Zeit in die Konfiguration investiert, schließlich aber einen Zustand erreicht, in dem kaum noch Änderungen nötig waren
Veränderung
- Mit der Zeit mussten die Konfigurationsdateien jedoch immer weiter vereinfacht werden, und selbst um grundlegende Funktionen zu erhalten, war viel Aufwand nötig
- Gelegentlich verursachte schon das Aktualisieren von Plugins Probleme in Neovim, sodass die Arbeit unterbrochen werden musste, um Zeit in die Fehlersuche zu stecken. Um das zu lösen, wurde versucht, die Konfiguration zu vereinfachen, doch selbst für grundlegende Funktionen war weiterhin Aufwand nötig
- Besonders bei der Arbeit in großen Codebases wurde Neovim langsamer und es traten Probleme wie eingefrorene Bildschirme auf, was die Produktivität beeinträchtigte
- Es wurde versucht, auf andere Terminal-Emulatoren wie Alacritty oder Wezterm zu wechseln, aber das machte keinen großen Unterschied
- Zed war zuvor schon einmal aufgefallen, wurde aber wieder verworfen, weil es nicht terminalbasiert ist. Nachdem jedoch viel Positives über die Geschwindigkeit von Zed zu hören war, fiel die Entscheidung, es noch einmal zu versuchen
- Nach zwei Monaten täglicher Nutzung bot Zed eine sehr zufriedenstellende Erfahrung, und es soll auch künftig weiter genutzt werden. Eine Rückkehr zu Neovim ist nicht geplant
Erfahrungen mit Zed
- Um zu erklären, warum die Wahl auf Zed gefallen ist, soll die allgemeine Nutzungserfahrung bisher und die Art der Anpassung an die eigenen Bedürfnisse beschrieben werden
Alles „funktioniert einfach“
- Einer der größten Vorteile von Zed ist, dass „einfach alles funktioniert“
- Besonders Funktionen wie das Language Server Protocol (LSP) kosten in Neovim viel Zeit bei der Einrichtung, während sie in Zed standardmäßig gut funktionieren
- In Zed sind Tastenkombinationen wie „Definition anzeigen“, „Zur Definition springen“ und „Code-Aktionen“ standardmäßig vorhanden, und da die meisten Sprachen unterstützt werden, treten dabei kaum Probleme auf
Geschwindigkeit
- Einer der Hauptgründe für die Wahl von Zed war die Geschwindigkeit, und am Ende war die Zufriedenheit damit sehr groß
- Auch in großen Codebases arbeitet es schnell und ohne Verzögerung, und bisher gab es keinerlei Leistungsprobleme
- Es wäre vielleicht möglich, Neovim noch schneller zu machen, aber statt Zeit für Produktivitätsoptimierung zu verschwenden, ist es besser, einfach Zed zu nutzen
Vim-Modus
- Als Neovim-Nutzer gab es die enttäuschende Erfahrung, dass das Vim-Plugin für VSCode instabil und voller Bugs war
- Der Vim-Modus von Zed ist eine direkt von den Entwicklern erstellte Funktion, sehr stabil und unterstützt wichtige Funktionen zuverlässig
- Die Struktur der Tastenkombinationen ist sehr flexibel und bietet Funktionen, die Vim-Nutzerinnen und -Nutzer gefallen dürften
AI-Funktionen
- Zed bietet auch AI-Funktionen und hat Copilot standardmäßig integriert
- AI-Modelle wie OpenAI, Ollama und Anthropic lassen sich per API nutzen
- Nützlich ist auch die Inline-Assistant-Funktion, mit der ein Teil des Codes ausgewählt und per
ctrl-enterder AI-Assistent aufgerufen werden kann, um Code zu schreiben
Zed ≠ Neovim
- Zed kann Neovim nicht vollständig ersetzen. Eine große Stärke von Neovim ist seine native Existenz im Terminal
- Für einfache Dateibearbeitungen ist Neovim praktischer, aber für lange Sessions oder Projekte ist Zed perfekt
Zed für Neovim-Nutzer anpassen
Zed ist kein vollständiger Ersatz für Neovim, aber durch viele kleine Einstellungen lässt sich die Erfahrung deutlich verbessern, um für Neovim-/Vim-Nutzer eine vertraute Umgebung zu schaffen
Vim-Modus und Tastenkombinationen
- Als Erstes sollte der Vim-Modus aktiviert werden. Zed bietet eine Dokumentationsseite zum Vim-Modus, die die grundlegenden Vim-Bindings und zusätzliche Konfigurationsmöglichkeiten erklärt
- Einer der großen Vorteile von Zed ist, dass sich Tastenkombinationen abhängig vom Vim-Modus festlegen lassen. So können zum Beispiel für den Modus „Normal“ und den Modus „Visual“ unterschiedliche Tastenkombinationen verwendet werden
[
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space b": "editor::ToggleGitBlame",
"shift-k": "editor::Hover",
"space l f": "editor::Format",
"space d": "diagnostics::Deploy",
"space f f": "file_finder::Toggle",
"space o": "tab_switcher::Toggle",
"space e": "workspace::ToggleLeftDock",
"space /": "workspace::NewSearch",
"n": "search::SelectNextMatch",
"shift-n": "search::SelectPrevMatch",
"space t": "workspace::NewCenterTerminal",
"g b": "editor::ToggleComments",
"+ +": "workspace::Save",
"space c": "pane::CloseActiveItem"
}
},
{
"context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",
"bindings": {
"shift-j": "editor::MoveLineDown",
"shift-k": "editor::MoveLineUp"
}
},
]
- Außerdem lassen sich in Zed Tastenkombinationen zum Wechseln zwischen Panels festlegen, um einen an Neovim angelehnten Workflow zu schaffen
[
{
"context": "Dock || Terminal || Editor",
"bindings": {
"ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
]
- Es wird auch empfohlen, sich an der Standard-Vim-Keymap zu orientieren und die nötigen Einstellungen anzupassen. Die Standard-Vim-Keymap ist eine nützliche Referenz dafür, was Zed unterstützt und wo Anpassungen sinnvoll sind
Vereinfachte UI
- Zed bietet bereits eine minimalistische UI, aber wer eine Oberfläche bevorzugt, die der Neovim-Konfiguration ähnlicher ist, kann Tab-Bar, Scrollbar, Toolbar und Ähnliches deaktivieren
{
"cursor_blink": false,
"relative_line_numbers": true,
"scrollbar": {
"show": "never"
},
"vertical_scroll_margin": 0,
"tab_bar": {
"show": false
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
},
}
Plugin-Ersatz
- In Zed kann der Tab-Switcher (Toggle) als ähnliche Funktion wie Telescope verwendet werden, um zwischen Dateien oder Buffern zu navigieren
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- Die projektweite Suche dient als Ersatz für Telescope, wobei sich die Ergebnisse in einer Multi-Buffer-Ansicht anzeigen und leicht durchsuchen lassen
- Das Umschalten des Terminals ist ähnlich wie in VSCode, aber in Zed gibt es auch die Option, das Terminal als Buffer in der Haupt-Editoransicht zu öffnen
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- Tmux und Projektwechsel lassen sich nicht vollständig ersetzen, aber Zeds Funktion zum Projektwechsel erledigt diese Aufgabe ziemlich gut
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
Sollte man Zed verwenden?
- Wer überlegt, Zed auszuprobieren, sollte es ein paar Tage lang testen
- Zed ist ein einzigartiger und leistungsfähiger Texteditor, und letztlich ist das Tool wichtig, das die eigene Produktivität steigert
- Das kann VS Code, JetBrains oder auch EMacs sein
- Es sollte das Tool gewählt werden, das am besten passt, aber ohne zu stur zu sein, um nicht auch einmal etwas Neues auszuprobieren
3 Kommentare
Hacker-News-Kommentare
Zed gefiel mir anfangs, wurde aber weniger nützlich, weil der Fokus auf Zusammenarbeit und AI-Funktionen lag und dadurch als grundlegender Editor Funktionen fehlten
Ich nutze Helix, weil ich von VSCodium auf Vim oder Neovim wechseln wollte, die Plugin-Konfiguration aber schwierig fand
Ich bin vor Kurzem von Vim zu Zed gewechselt und halte Zed in vielerlei Hinsicht für großartig
Bei der Nutzung von Zed genieße ich die hohe Geschwindigkeit und die aufgeräumte UI
Ich bin vor sechs Monaten von VSCode zu Zed gewechselt, vor Kurzem aber wieder zu Neovim zurückgekehrt
Ich hoffe, dass Zed weiter verfeinert und stabilisiert wird
Ich frage mich, ob du schon einmal eine Neovim-Distribution ausprobiert hast
Wenn du in VSCode echtes Neovim willst, empfehle ich,
vscode-neovimauszuprobierenDurch mein Interesse an Kakoune und Helix habe ich eine Modal-Editing-Erweiterung für VSCode geschrieben
Als ich Zed auf macOS ausprobiert habe, wirkte es auf mich wie ein schneller und funktionsreicher Editor
Ich bin vor Kurzem auch zu Helix gewechselt.
Wie in den Kommentaren auf Hacker News beschrieben, habe ich in meinem bisherigen NeoVim ohnehin nicht alle Plugins genutzt, also habe ich helix ausprobiert und bin direkt umgestiegen. Das Farbthema ist allerdings wirklich ein Schock.
Meinen Sie, dass es Ihnen nicht gefällt, weil das Standard-Theme so lila ist? :eyes: