Une configuration de type vim pour Helix
Laissez-moi deviner pourquoi vous êtes ici. Vous êtes un utilisateur (néo) vim. Aujourd'hui, pour la millionième fois, vous avez mis à jour vos plugins et avez rencontré une mer de messages d'erreur criminels inutiles. Vous avez des choses à faire. Vous n'avez pas le temps de rechercher les problèmes de github des plugins arcaniques maintenus par des personnes dont l'approche des changements de rupture est ... eh bien, un peu trop cavalier pour vos goûts.
Vous vous souvenez qu'un ami ou un collègue vous a envoyé un lien vers l'éditeur Helix il y a quelque temps. Ça avait l'air plutôt cool, non?
"Mais qu'en est-il des plugins!" cria les acolytes de Neovim. Hmm ... plugins. Ces plugins qui brisent votre vimrc à peine reconnaissable avec une régularité déprimante. Ou peut-être que vous avez vraiment bu le Kool Aid et traduit votre configuration en Lua. Cela n'a pas d'importance de toute façon. Les changements de rupture dans les plugins Neovim ne se soucient pas de votre .vimrc ou de votre init.lua
Oui ... ces plugins que vous ne devriez même pas avoir besoin d'installer pour avoir un éditeur fonctionnel.
Les plugins sont damnés!
Vos mains en sueur tâtonnent votre clavier mécanique odieusement bruyant avec les touches alt + hjkl pour concentrer votre émulateur de terminal ouvert avec votre gestionnaire de fenêtres en carrelage. kitty ou alacritty , probablement. Vous êtes brièvement renvoyé dans un souvenir des innombrables heures passées à essayer de faire correspondre vos colorialmes Terminal et Neo (VIM).
Vous installez la dernière version binaire d'Helix disponible sur votre gestionnaire de packages de choix et cd dans le répertoire dans lequel vous étiez sur le point de commencer à travailler avant que votre configuration Neo (VIM) ne soit noyée dans un flot de rouge.
hx
Vous appuyez provisoirement à la barre d'espace et essayez le sélecteur de fichiers. Recherche floue. Syntaxe Soulignement. Bon. Naturellement, le répertoire dans lequel vous êtes dans Hosts a Rust Project. Vous sélectionnez l'un des nombreux fichiers lib.rs qui servent d'entrée pointe vers les caisses de l'espace de travail cargo dans lesquelles vous divisez votre monolithe dans l'espoir d'améliorer vos temps de compilation incrémentiels sur votre MacBook Pro vieillissant. Votre entreprise ne vous donnera pas l'un des nouveaux modèles M1 car celui-ci n'a pas encore 5 ans. Hélas.
Vous entendez rust-analyzer commencer à imposer sa volonté à votre processeur Intel vieillissant, paralysé plus loin par l'obsession de Jonny Ive pour la minceur par-dessus tout. Je parie que c'est un fatphobe qui fait rage.
Attendez une minute ... Vos yeux se lancent autour de l'écran. Il n'y a pas d'erreurs. La mise en évidence de la syntaxe semble correcte. Vous essayez de naviguer dans le fichier en utilisant {} , mais cela ne fonctionne pas. Hmm, cela peut être compris plus tard. Vous utilisez la souris pour amener le curseur à une invocation d'une macro_rules! macro. Vous appuyez sur g et rencontrez une multitude d'options alimentées par LSP. Vous n'avez même pas installé de plugin LSP! Vous appuyez sur k et une fenêtre contextuelle apparaît avec la documentation de la macro.
C'est ainsi que la vie devrait toujours être. Vous décidez de passer à Helix.
... Et peu de temps après, vous abandonnez. Votre mémoire musculaire VIM est trop forte. La structure de l'objectif-objet verbe des commandes VIM est devenue le langage que votre cerveau utilise pour envoyer des instructions à vos doigts. Basculées, les références à hx dans votre .zsh_history deviennent moins loin et loin, jusqu'à ce qu'elles disparaissent complètement, remplacées une fois de plus par vim , nvim ou nvim aliasées à vim .
Vous rejetez les messages d'erreur rouges qui vous hurlent chaque fois que vous ouvrez l'éditeur. Peut-être que vous gardez une instance en cours d'exécution après avoir rejeté toutes les erreurs afin que vous n'ayez pas à passer par l'humiliation de rejeter les erreurs que vous n'avez pas le temps, l'énergie ou la motivation pour corriger chaque fois que vous souhaitez modifier un fichier.
Peut-être qu'un jour, pensez-vous, il sera possible d'utiliser Helix dans "Vim Mode", après tout, il y a même un plugin VIM assez décent pour VScode ces jours-ci, non?
Mon ami. J'ai ressenti votre frustration, votre colère, votre chagrin, votre déception et votre défaite.
Je ne pourrai peut-être pas vous donner une solution parfaite pour le moment, mais je peux vous en donner plus qu'assez pour faire rouler le ballon!
Consultez le fichier config.toml dans ce référentiel. Il ne contient que des mappages clés. Ce sont les mappages clés les plus importants pour me permettre d'utiliser autant de ma mémoire musculaire VIM que possible lors de l'édition de texte en hélice.
Si vous avez l'habitude de faire beaucoup de commandes c , vous devrez vous adapter à la sélection de la zone que vous souhaitez avec v , puis en la supprimant.
Cela étant dit, beaucoup des choses les plus élémentaires (y compris C , 0 , $ , ^ , G , {} et % !) Que vous comptez chaque jour pour modifier et naviguer dans un fichier texte sans y penser, est implémenté.
N'hésitez pas à débarrasser cela, à le personnaliser, à faire des suggestions, à améliorer, à combler les lacunes que je ne sais pas comment combler, etc.