- Un développeur qui utilisait Vim depuis 20 ans partage son expérience après être passé à l’éditeur Helix et l’avoir utilisé pendant 3 mois
- Helix est séduisant car il prend en charge nativement les serveurs de langage (LSP) sans configuration complexe
- Par rapport à Vim/Neovim, ses excellentes fonctions de recherche et ses curseurs multiples sont particulièrement améliorés, ce qui facilite la compréhension du contexte dans plusieurs fichiers et les modifications en masse
- Lors de la saisie, une fenêtre de référence rapide (quick reference) permet d’utiliser les raccourcis sans les oublier
- Malgré quelques inconvénients — absence de génération automatique des listes Markdown, pas d’undo persistant, crash environ une fois par semaine — l’expérience globale reste très satisfaisante
- Réapprendre 20 ans de mémoire musculaire accumulée avec Vim s’est révélé plus facile que prévu, et il a été bien plus efficace de ne pas chercher à imposer les habitudes de Vim mais d’apprendre la “méthode Helix”
Pourquoi passer à Helix
- L’auteur a commencé à utiliser Helix pour profiter facilement de ses fonctions intégrées de serveur de langage
- Dans Vim/Neovim, configurer un serveur de langage était complexe, alors qu’avec Helix il est possible, sans réglage supplémentaire, de naviguer vers les définitions ou de renommer des symboles immédiatement
- Auparavant, il fallait maintenir de nombreux plugins et fichiers de configuration, tandis qu’Helix réduit cette charge grâce à sa prise en charge native
Les principaux atouts de Helix
- La qualité du système de recherche
- Lors d’une recherche de chaîne dans tout le dépôt, les résultats s’affichent dans une fenêtre d’aperçu, ce qui permet de faire défiler les fichiers correspondants et de voir en même temps le code autour
- Contrairement au plugin ripgrep de Vim, les résultats offrent beaucoup plus de contexte, ce qui permet de juger rapidement
- La fonction de référence rapide pour les raccourcis
- En appuyant sur la touche
g, une fenêtre d’aide affiche la liste des commandes de déplacement disponibles, ce qui est intuitif
- Même les raccourcis peu utilisés restent faciles à retrouver, ce qui adoucit la courbe d’apprentissage
Différences entre Vim et Helix
- Pour les marques, au lieu de
ma et 'a, Helix utilise Ctrl+O et Ctrl+I pour suivre l’historique des déplacements du curseur
- À la place des macros, on utilise surtout l’édition à curseurs multiples
- Pour des modifications globales dans un document : sélection complète avec
% → sélection par expression régulière avec s → exécution des modifications multiples nécessaires
- Les curseurs multiples sont bien plus pratiques que d’écrire une macro à chaque fois
- À la place des onglets, on peut basculer rapidement via le sélecteur de buffers avec
space + b
Les points gênants de Helix
- La fonction de reflow du texte est moins efficace que
gq dans Vim
- Elle s’accorde mal avec les listes
- Pas de génération automatique des listes Markdown
- Même en appuyant sur "Entrée" à la fin d’un élément de liste, la liste ne se poursuit pas
- Il existe une solution partielle pour les listes à puces, mais pas pour les listes numérotées
- La fonction d’undo persistant n’est pas encore implémentée
- Dans Vim,
undofile permettait d’annuler des modifications même après avoir quitté l’éditeur, mais Helix ne propose pas encore cette fonction
- Pas de rechargement automatique des fichiers
- Après modification d’un fichier sur le disque, il faut exécuter manuellement
:reload-all (:ra<tab>)
- Des crashs occasionnels
- Environ une fois par semaine, peut-être liés à une édition intensive de Markdown
- Il suffit de rouvrir l’éditeur, donc ce n’est pas un gros problème
- Malgré cela, l’auteur continue d’utiliser Helix
Le processus de transition et l’apprentissage
- Il craignait que réapprendre 20 ans de mémoire musculaire Vim soit très difficile
- Il a commencé à utiliser Helix sur un projet annexe pendant ses vacances, et au bout d’une à deux semaines, cela n’était déjà plus déroutant
- Au début, il a essayé d’imposer des raccourcis proches de Vim, sans succès, et apprendre la “méthode Helix” s’est révélé bien plus simple
- Certaines choses restent toutefois déroutantes
- Le
w de Vim et le w de Helix n’ont pas la même définition d’un « mot » (dans Helix, l’espace après le mot est inclus, dans Vim non)
Un environnement d’édition basé sur le terminal
- Comme il utilisait principalement les versions GUI de vim/neovim depuis des années, utiliser un éditeur dans le terminal a demandé une petite adaptation
- Workflow finalement adopté
- Une fenêtre de terminal distincte pour chaque projet, avec tous les onglets de cette fenêtre partageant le même répertoire de travail
- L’onglet Helix placé en premier dans la fenêtre du terminal
- Cela facilite le travail parallèle sur plusieurs projets, au point d’être peut-être meilleur que son workflow précédent
Configuration
- Par rapport à une configuration Neovim qui faisait des centaines de lignes, il conserve une configuration très simple
- Il ne configure essentiellement que 4 raccourcis clavier
- Principaux éléments de configuration
- Thème :
solarized_light
- Le registre de yank par défaut est défini sur
+ afin de le synchroniser avec le presse-papiers système
# est configuré comme raccourci pour activer/désactiver les commentaires (il n’aimait pas le Ctrl+C par défaut)
^ et $ sont remappés pour aller au début/à la fin de la ligne (il ne voulait pas apprendre une autre méthode)
<space>l est configuré sur :reflow (comme il écrit beaucoup de texte, il a souvent besoin de reflow et regrettait le raccourci gq de Vim)
- Un fichier de configuration
languages.toml séparé sert à définir des préférences par langage
- Pour Python : formateur black, serveur de langage pyright, formatage automatique désactivé
Conclusion : impressions après 3 mois
- Trois mois, ce n’est pas si long, et un retour à Vim reste possible un jour
- Il avait déjà migré vers nix avant de revenir à Homebrew 8 mois plus tard (même s’il utilise toujours NixOS pour administrer un serveur et en est satisfait)
- Helix n’est pas encore totalement abouti, mais sa direction vers un “éditeur sans configuration” est claire
- Grâce à sa simplicité et à ses fonctions intégrées, il a le potentiel de remplacer Vim à long terme
- La poursuite de son adoption dépendra toutefois des progrès en stabilité et de l’élargissement des fonctionnalités
2 commentaires
Avis Hacker News
J’utilise Vim/Neovim depuis longtemps, j’ai essayé des configurations personnalisées comme des configurations toutes faites, et même si j’aime vraiment Vim, le fait que Helix soit immédiatement utilisable sans travail de configuration séparé est extrêmement séduisant
Cela dit, la config de Helix elle-même me paraît très rudimentaire, si bien que je me dis qu’après seulement quelques premières années sur Vim, j’aurais probablement pu reproduire dans Vim l’environnement que j’obtiens avec Helix, et dire ainsi que je n’étais plus en enfer de configuration
J’adore les pop-ups d’aide qui indiquent le chemin à suivre ou les raccourcis à utiliser ; je n’emploie pas si souvent des fonctions comme « aller à la définition » ou « aller aux références », donc j’oublie facilement les raccourcis ; j’aimerais que ce type de pop-up contextuel soit adopté partout, et s’il apparaissait intelligemment seulement quand on hésite à taper, ce serait vraiment utile
J’utilise Vim/Neovim depuis 20 ans, mais ce n’est qu’il y a 6 mois que j’ai installé le plugin which-key, et je le trouve extrêmement utile
which-key.nvim GitHub
J’ai essayé à plusieurs reprises de mettre en place correctement la configuration du serveur de langage principal, par exemple pour avoir « aller à la définition », mais j’ai trouvé bien trop difficile d’obtenir un environnement agréable dans Vim ou Neovim
Pas besoin de s’embêter à déplacer sa config Vim et toutes les dépendances associées ; l’environnement de développement paraît bien plus portable, même s’il reste plus basique qu’une configuration Vim complexe
Surtout, après avoir vu les explications et les captures d’écran correspondantes dans l’article, je me suis mis à la désirer très fortement
Si le pop-up apparaissait intelligemment selon des conditions comme un timeout, ce serait excellent : pas gênant quand on n’en a pas besoin, mais une aide automatique dès qu’on hésite
Avant, j’utilisais surtout neovim et VS Code, mais Helix comble un avantage particulier
J’en avais assez de configurer neovim ou de continuer à utiliser vim, et j’avais besoin d’un point intermédiaire entre VS Code et nvim ; Helix tombe exactement juste
Si j’avais été un maître de vimscript, j’aurais peut-être réfléchi autrement, mais comme ce n’est pas le cas, c’est parfait pour moi
J’aimerais que Helix reste comme il est, sans chercher à devenir plus modulaire ni plus UNIX-like
Il existe déjà tout un écosystème d’outils, et on peut aussi l’utiliser avec Claude Code, avec rafraîchissement du buffer pour appliquer les nouvelles modifications
C’est l’un des meilleurs éditeurs, au point que j’ai commencé à soutenir le projet chaque mois
Si je devais souhaiter une évolution, ce qui me manque le plus serait le rendu d’images ou de formules dans l’éditeur ; j’espère que ce point pourra être implémenté via le protocole terminal de Kitty ou des plugins comme sixel
J’aimerais particulièrement en profiter pour travailler sur des notes ou un blog en fichiers Markdown
Longue vie à Helix
Avec VSCode ou (neo)vim, il faut récupérer des plugins depuis plusieurs endroits, et ça m’a toujours mis mal à l’aise
Je ne suis pas développeur Lua, mais les LLM aident énormément à configurer ou modifier nvim
La raison principale qui m’a amené vers helix, c’est que la configuration LSP/lint y est vraiment très bien faite
Je partage quelques points sur des fonctions déjà mergées dans HEAD —
Comme il existe déjà un sélecteur de fichiers intégré basé sur la recherche floue, un explorateur de fichiers classique n’apporte pas énormément d’utilité supplémentaire
J’ai également essayé un plugin de raccourcis vim pour Helix, mais il ne correspondait que partiellement, ce qui a rendu la déception encore plus grande
Je me demande comment les utilisateurs expérimentés de Helix règlent ce problème
Configurer confortablement des serveurs de langage dans Vim/Neovim était devenu trop pénible, donc je suis passé à Helix
Cela dit, ces 5 dernières années, des distributions Neovim « batteries incluses » sont apparues, rendant la configuration très facile
Je suis d’accord pour dire que beaucoup de développeurs ne veulent pas passer leur temps à déboguer leur éditeur, et je pense que c’est pour cela que JetBrains est populaire
En revanche, l’idée qu’un utilisateur de Neovim depuis 20 ans n’ait jamais réussi à mettre en place correctement un environnement LSP me semble un peu difficile à croire, et je me demande si c’est vraiment une expérience honnête de l’auteur
Finalement, utiliser un IDE complet paraissait plus simple, donc il y avait toujours une hésitation vis-à-vis de l’installation et de la configuration
Je comprends totalement le cas de l’auteur
J’utilise aussi une configuration minimale, assez barebones, et je n’ai pas trouvé cela compliqué ; Lua me paraît beaucoup plus ergonomique que vimscript
C’est aussi pour cela que je continue à utiliser des outils comme ALE
En tout cas, j’espère que l’expérience avec Helix vous rend heureux
On peut utiliser d’autres éditeurs, mais presque tout le débogage et la configuration sont centrés sur vscode, et l’ambiance générale pousse à son adoption
Les configurations Neovim+treesitter+LSP sont déjà très fluides aujourd’hui ; même si c’était difficile autrefois, ce n’est plus vraiment un gros problème
Si la motivation pour passer à Helix est le LSP, cela paraît étrange ; peut-être que le problème de l’auteur n’est pas vraiment le LSP
L’un des inconvénients du modèle noun-verb, c’est que la répétition de commande (
.) devient impossibleDans Vim, on peut répéter des actions comme
dd..,dap.., etc., mais le modèle noun-verb rend cela difficilePlus fondamentalement, il y a aussi un problème de manque de touches disponibles
Trop d’opérations de base reposent sur la touche Alt, et contrairement à vim, il n’y a pas de modes normal/visual/insert distincts, seulement visual et insert
Même la distinction entre motion et objet n’est pas claire, ce qui rend le mapping des touches plus difficile et accentue ce manque de touches
J’ai l’impression qu’il correspond aussi beaucoup mieux à la façon de penser nécessaire quand on écrit réellement du code
C’est une collection de plugins créée par echasnovski, qui répond à de nombreux besoins avec cohérence et bonne documentation
À partir de nvim 0.12 (nightly), il suffit d’installer mini.nvim et lspconfig avec le gestionnaire de plugins intégré (vim.pack)
site officiel de mini.nvim
dépôt GitHub de mini.nvim
J’utilise neovim sans plugins, sans autocomplétion, et même sans coloration syntaxique
J’ai le sentiment que cette autodiscipline me pousse à écrire du meilleur code
Ce n’est sans doute pas fait pour tout le monde, mais je recommande vraiment d’essayer au moins une fois
Je n’utilise pas non plus les code actions ni goto definition, et même s’il y a parfois des erreurs en temps réel, les compilateurs sont si rapides que cela n’a pas beaucoup d’importance
J’ai envie de désactiver LSP ; je n’ai pas l’impression qu’il ait considérablement amélioré mes capacités de programmation par rapport à il y a 20 ans
Quant à la coloration syntaxique, je trouve au contraire que les thèmes trop colorés cassent la concentration et n’apportent rien
Je préfère les thèmes monochromes ou à deux couleurs, et je ne ressens même pas le besoin de distinguer les noms de variables et de fonctions par la couleur
Cela dit, je me demande si le fait de devoir tout mémoriser n’accumule pas de fatigue, ou si cette méthode produit réellement du meilleur code
Les couleurs apportent une dimension d’information supplémentaire : elles rendent les erreurs plus visibles dans le code et accélèrent la navigation
Sans aller jusqu’à un extrême total, je garde la coloration syntaxique ainsi que le retour sur les erreurs de syntaxe via LSP
Je n’utilise ni autocomplétion ni liens automatiques vers la documentation
helix-editor.vercel.app
Elle est bien plus agréable à consulter que la documentation officielle, et contient beaucoup d’astuces, ce qui aide à atténuer certains défauts de Helix comme l’absence de terminal intégré, tout en apprenant des méthodes d’édition efficaces et les raccourcis
Pour les utilisateurs de vim de longue date, je recommande kickstart, en particulier son fork modulaire kickstart-modular.nvim
kickstart.nvim
C’est un excellent point de départ très minimaliste
En revanche, comme il est assez volumineux, je le gère plus facilement en repliant les sections avec des fold markers
Je m’intéresse de temps en temps à Helix pour la simplicité du LSP et de la configuration des plugins, entre autres, mais comme mes habitudes sont trop ancrées dans vi/vim, ce n’est pas facile.