Installer Helix Editor sur Debian

helix 22.05 (5d33dbac)


Helix est un éditeur de texte modal comme vim qui s'exécute dans un terminal. Il est écrit dans le langage Rust. Il est dans la mouvance de Neovim et Kakoune.

C'est un projet récent : la version 0.0.2 date de mai 2021.

Installation

Il n'existe pas de paquet Debian pour cet éditeur. Il faut l'installer à partir des sources.

Prérequis : avoir installé le langage Rust au préalable (voir cette page du site officiel de rust)

L'installation de l'éditeur de code Helix à partir des sources est expliquée sur la page github d'Helix :


	   git clone https://github.com/helix-editor/helix
	   cd helix
	   cargo install --path helix-term
       

Très important, pour terminer l'installation et avoir un éditeur pleinement fonctionnel, il faut exécuter la commande suivante : ln -s $PWD/runtime ~/.config/helix/runtime

hx --health

Vérifie les erreurs potentielles dans la configuration. La commande affiche une liste qui vérifie pour chaque langage supporté ce qui est disponible dans hx :

Focus sur rust

La commande hx --health rust :


        olivier@debian:~/projets$ hx --health rust
        Configured language server: rust-analyzer
        Binary for language server: /home/olivier/.cargo/bin/rust-analyzer
        Configured debug adapter: lldb-vscode
        Binary for debug adapter: Not found in $PATH
        Highlight queries: ✔
        Textobject queries: ✔
        Indent queries: ✔
      

Rust attend le debugger lldb-vscode qui n'est pas là alors que rust-lldb existe.

Focus sur python

La commande hx --health python :


        olivier@debian:~/projets$ hx --health python
        Configured language server: pylsp
        Binary for language server: /home/olivier/.local/bin/pylsp
        Configured debug adapter: None
        Highlight queries: ✔
        Textobject queries: ✔
        Indent queries: ✘
      

Pour python, l'indentation automatique n'est pas encore là.

Premier lancement

Dans un terminal, taper la commande hx

L'éditeur Helix - illustration

Trouver la log

Helix créé un fichier de log qui trace les problèmes rencontrés. Chemin vers la log : ~/.cache/helix/helix.log

Pour afficher la log dans hx, en mode normal, taper :log-open.

Cela m'a permis de voir un WARN insistant 2022-08-04T06:17:33.535 helix_view::clipboard::provider [WARN] No clipboard provider found! Yanking and pasting will be internal to Helix. On peut résoudre ce problème en installant le paquet xclip.

Changer le thème

Ce joli thème violet s'appelle default. Pour tester un nouveau thème il suffit de taper :theme . Ne pas oublier le caractère espace car il va afficher les thèmes disponibles.

L'éditeur Helix choisir un thème - illustration

La liste apparaît, il suffit de choisir un thème (taper une ou deux lettres puis touche Tab pour compléter). Le theme s'applique immédiatement.

Pour configuer le thème pour les futures sessions, il faut l'enregister dans le fichier de configuration. Dans hx en mode normal, taper la commande :config-open Cela ouvre le fichier ~/.config/helix/config.toml. Tout en haut, avant toute autre configuration, taper theme = "monokai_pro" si le choix se porte sur celui-là.

L'éditeur Helix thème monokai_pro - illustration

Pour revenir au thème par défaut. Ouvrir le fichier de config et supprimer la ligne pour les futures sessions ou taper :theme default pour la session en cours.

Installer un serveur de langage lsp

Helix utilise naturellement LSP sans aucune configuration particulière. Il faut juste installer le serveur approprié.

Pour python python3 -m pip install "python-lsp-server[all]".

Pour rust, c'est une installation d'un binaire rust-analyzer dans ~/.local/bin/ avec un curl ou dans le répertoire ~/.cargo/bin/ avec une commande cargo.


        $ git clone https://github.com/rust-lang/rust-analyzer.git && cd rust-analyzer
        $ cargo xtask install --server
      

J'ai choisi la seconde solution. Pour appliquer l'autre voir le manuel rust-analyzer.

Helix tutoriel

Pour apprendre un outil, rien ne vaut la pratique. Comme pour vim ou emacs, Helix possède son propre tutoriel.

Pour le lancer, taper la commande : tutor.

L'éditeur Helix en mode tutoriel - illustration

conclusion

Helix (hx) est un éditeur prometteur. Il est simple à installer, rapide dans l'utilisation. Il intègre les dernières technologies (LSP, DAP) assez simplement pour permettre à un nouvel utilisateur d'être pleinement actif sans se perdre dans la configuration. Bien sûr, il manque des choses (je ne suis pas prêt d'écrire ce site avec hx) et peut-être que le projet finira par tomber dans l'oubli.
Tout dépend de ce qui sera proposé dans la prochaine release. Je pense également que le nom finira par changer. Trop de choses existent avec ce nom, ce qui rend la visibilité de l'application problématique.