Je quitte Neovim pour passer à Zed
(stevedylan.dev)- Tous les développeurs ont leur propre parcours en matière d’éditeur de texte, avec tout le cheminement qui les amène à l’outil qu’ils utilisent aujourd’hui. Ces récits sont intéressants et inspirent une grande appréciation pour les outils de développement et les efforts investis dans leur création
- Cet article a été écrit pour partager ce parcours avec les personnes intéressées par les outils de développement, et pour les encourager à expérimenter de nouveaux outils
Les débuts de mon parcours avec les éditeurs de texte
- J’ai commencé par utiliser Atom en apprenant les bases du HTML, du CSS et du Javascript
- Je suis ensuite passé à VSCode, mais à l’époque ma femme devait utiliser le portable pour faire de la retouche photo, et le MacBook que j’utilisais à la place souffrait de ralentissements à cause du build Electron de VSCode
- C’est à ce moment-là que j’ai découvert Vim par hasard, et je suis tombé sous le charme du flux de travail centré sur le clavier et de sa rapidité, ce qui m’a poussé à l’apprendre
- Au début, j’utilisais Vim en modifiant mon Vim RC, puis j’ai découvert Neovim via les vidéos de chris@machine
- J’ai utilisé Neovim pendant des années avec une grande productivité. J’ai passé beaucoup de temps à peaufiner ma configuration, jusqu’à atteindre un point où elle ne nécessitait presque plus de changements
Le changement
- Mais avec le temps, j’ai dû continuer à simplifier mes fichiers de configuration, et même maintenir des fonctionnalités de base demandait beaucoup d’efforts
- Il arrivait qu’à chaque mise à jour de plugin, Neovim rencontre des problèmes, m’obligeant à interrompre mon travail pour passer du temps à les résoudre. J’ai essayé de simplifier ma configuration pour régler cela, mais il fallait toujours faire des efforts pour préserver les fonctionnalités essentielles
- En particulier sur de grosses bases de code, Neovim devenait lent et l’affichage se figeait parfois, ce qui nuisait à ma productivité
- J’ai tenté de passer à d’autres émulateurs de terminal, comme Alacritty ou Wezterm, mais cela n’a pas fait une grande différence
- J’avais déjà entendu parler de Zed, mais comme il n’était pas basé sur un terminal, j’avais laissé tomber. Puis, après avoir entendu des retours positifs sur sa rapidité, j’ai décidé de lui redonner sa chance
- Après l’avoir utilisé tous les jours pendant deux mois, l’expérience s’est révélée très satisfaisante, et je compte continuer à l’utiliser. Je n’envisage pas de revenir à Neovim
Mon expérience avec Zed
- Pour expliquer pourquoi j’ai choisi Zed, je vais parler de mon expérience d’usage générale jusqu’ici et de la manière dont je l’ai adapté à mes besoins
Tout « fonctionne, tout simplement »
- L’un des plus grands atouts de Zed, c’est que « tout fonctionne, tout simplement »
- En particulier, des fonctionnalités comme le protocole Language Server (LSP), qui demandent beaucoup de temps à configurer dans Neovim, marchent très bien par défaut dans Zed
- Dans Zed, des raccourcis comme « afficher la définition », « aller à la définition » ou « actions de code » sont fournis nativement, avec une prise en charge de la plupart des langages, ce qui évite les problèmes
La vitesse
- L’une des principales raisons de mon choix de Zed était sa rapidité, et sur ce point le résultat a été très satisfaisant
- Même sur de grosses bases de code, il reste rapide sans latence, et jusqu’à présent je n’ai rencontré aucun problème de performances
- Il serait sans doute possible d’accélérer davantage Neovim, mais au lieu de perdre du temps à chercher des gains de productivité, mieux vaut simplement utiliser Zed
Le mode Vim
- En tant qu’utilisateur de Neovim, j’avais déjà été déçu par le plugin Vim de VSCode, instable et truffé de bugs
- Le mode Vim de Zed est une fonctionnalité développée directement par les créateurs de l’éditeur, très stable, avec une bonne prise en charge des fonctions essentielles
- La structure des raccourcis clavier est très flexible et propose des fonctions qui devraient plaire aux utilisateurs de Vim
Les fonctions IA
- Zed propose aussi des fonctions IA, avec Copilot intégré par défaut
- Il est possible d’utiliser via API des modèles d’IA comme OpenAI, Ollama ou Anthropic
- La fonction d’assistant inline, qui permet de sélectionner un morceau de code puis d’appeler l’assistant IA avec
ctrl-enterpour écrire du code, est également utile
Zed ≠ Neovim
- Zed ne peut pas remplacer complètement Neovim. Le fait que Neovim existe nativement dans le terminal reste un énorme avantage
- Pour des modifications de fichiers simples, Neovim est plus pratique, mais pour des sessions longues ou des projets, Zed est parfait
Adapter Zed aux utilisateurs de Neovim
Zed n’est pas un remplaçant complet de Neovim, mais grâce à divers petits réglages, il est possible d’améliorer fortement l’expérience afin d’obtenir un environnement familier pour les utilisateurs de Neovim/Vim
Mode Vim et raccourcis clavier
- La première chose à faire est d’activer le mode Vim. Zed propose une page de documentation sur le mode Vim, qui explique les raccourcis Vim de base et la manière d’ajouter des réglages supplémentaires
- L’un des grands avantages de Zed est de pouvoir configurer les raccourcis clavier en fonction du mode Vim. Par exemple, on peut appliquer des raccourcis différents en mode « Normal » et en mode « Visual »
[
{
"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"
}
},
]
- Il est aussi possible de configurer les raccourcis de changement de panneau dans Zed afin de retrouver un flux de travail proche de Neovim
[
{
"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"]
}
},
]
- Il est également recommandé de consulter la keymap Vim par défaut pour ajuster les réglages nécessaires. La keymap Vim par défaut constitue une référence utile sur ce que Zed prend en charge et sur les éléments à adapter
Une interface simplifiée
- Zed propose déjà une interface minimale, mais si vous préférez une UI encore plus proche d’une configuration Neovim, vous pouvez désactiver la barre d’onglets, la barre de défilement, la barre d’outils, etc.
{
"cursor_blink": false,
"relative_line_numbers": true,
"scrollbar": {
"show": "never"
},
"vertical_scroll_margin": 0,
"tab_bar": {
"show": false
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
},
}
Remplacer certains plugins
- Dans Zed, on peut utiliser le sélecteur d’onglets (
Toggle) comme fonctionnalité proche de Telescope pour naviguer entre les fichiers ou les buffers
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- La recherche dans l’ensemble du projet remplace Telescope, avec un affichage multi-buffer des résultats qui permet de les parcourir facilement
- Le terminal à bascule fonctionne de manière similaire à VSCode, mais dans Zed il existe aussi une option pour ouvrir le terminal comme buffer dans la vue principale d’édition
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- Cela ne remplace pas complètement Tmux ni les fonctions de changement de projet, mais la fonction de bascule entre projets de Zed fait déjà très bien ce travail
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
Faut-il utiliser Zed ?
- Si vous hésitez à essayer Zed, je recommande de l’utiliser pendant quelques jours
- Zed est un éditeur de texte à la fois singulier et très compétent, et au final l’important reste l’outil qui vous rend le plus productif
- Cela peut être VS Code, JetBrains ou encore EMacs
- Choisissez l’outil qui vous convient le mieux, mais essayez de ne pas être trop fermé à l’idée de tester quelque chose de nouveau
3 commentaires
Avis sur Hacker News
J’ai aimé Zed au début, mais à mesure qu’il s’est concentré sur les fonctionnalités de collaboration et d’IA, il est devenu moins utile faute de fonctionnalités suffisantes comme éditeur de base
La raison d’utiliser Helix est que je voulais passer de VSCodium à Vim ou Neovim, mais que la configuration des plugins était difficile
Je suis récemment passé de Vim à Zed et je pense que Zed est excellent à bien des égards
Quand j’utilise Zed, j’apprécie sa grande rapidité et son interface propre
Je suis passé de VSCode à Zed il y a 6 mois, mais je suis récemment revenu à Neovim
J’espère que Zed sera davantage peaufiné et stabilisé
Je me demande si vous avez essayé une distribution Neovim
Si vous voulez un vrai Neovim dans VSCode, je recommande de jeter un œil à
vscode-neovimMon intérêt pour Kakoune et Helix m’a conduit à écrire une extension d’édition modale pour VSCode
Quand j’ai exploré Zed sur macOS, j’ai eu l’impression d’un éditeur rapide et riche en fonctionnalités
Je suis moi aussi récemment passé à Helix.
Comme dans les avis sur Hacker News, je n’utilisais pas tous les plugins de NeoVim, donc j’ai testé helix et je suis immédiatement passé dessus. En revanche, le thème de couleurs est vraiment déroutant.
Vous voulez dire que le thème par défaut est trop violet et que ce n’est pas terrible ? :eyes: