Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- 29 octobre -
Pour écrire du code, j'ai toujours été tiraillé entre les éditeurs de texte et les EDI. Il manque souvent aux éditeurs de texte des fonctionnalités qui doivent être ajoutées via des plugins, tandis que les EDI sont souvent beaucoup trop « usine à gaz », à tel point parfois que ça peut être dangereux quand il s'agit d'utiliser des fonctionnalités qu'on ne comprend pas bien.
J'ai commencé à utiliser vim il y a un moment déjà, et j'appréce sa nature modale (un mode pour insérer du texte, un mode pour sélectionner le texte, un mode pour modifier la sélection). Cependant, sans ajouter moult plugins, je le trouvais un peu dur à utiliser pour travailler sur du code (par exemple, il n'est par défaut pas possible d'accéder à la définition de la fonction qui se trouve sous le curseur). Quand on commence à plonger dans la myriade de plugins disponibles, il est facile de s'y perdre, et pour l'utilisateur frugal et fainéant que je suis, c'était trop galère à gérer (installation, mise à jour, maintenance générale).
Un des trucs que j'aime bien dans vim, c'est l'idée de pouvoir faire des phrases pour agir sur le texte. Par exemple, quand le curseur se trouve sur la première lettre d'un mot, dans le mode normal, on peut le remplacer en tapant cw
, ce qui signifie littéralement « change le mot » (“change word”). Le problème, avec cette syntaxe, c'est qu'il est impossible de visualiser le bloc de texte qui va être impacté. Dans l'exemple précédent, c'est facile puisque c'est juste un mot, mais quand on commence à travailler sur des lignes ou des paragraphes, ça devient beaucoup plus compliqué.
Il y a quelques années, j'ai entendu parler de Kakoune, une alternative à vim qui fonctionne en inversant l'ordre des actions : on sélectionne d'abord le bloc de texte sur lequel on veut agir, puis on effectue l'action désirée. C'est bien plus agréable à l'usage ! Malheureusement, il s'agit, tout comme vim, d'un éditeur de texte avant tout, donc pour éditer du code, il faut passer pas mal de temps à le configurer.
Puis, l'an dernier, j'ai entendu parler de Helix. Cet éditeur utiliser un paradigme similaire à celui développé par Kakoune pour gérer la sélection de texte, mais il est fourni « avec les piles », ce qui veut dire qu'il n'est pas nécessaire de passer beaucoup de temps à le personnaliser pour pouvoir en profiter en tant qu'éditeur de code.
Une des fonctionnalités les plus intéressantes de Helix pour l'édition de code est le support du Language Server Protocol en natif, ce qui veut dire que, comme VS Code par exemple, il est possible de naviguer dans une base de code assez facilement sans avoir à faire grand'chose à part installer le support du langage de votre choix pour LSP. Dans mon cas, en tant que développeur Python, ça revient à installer le paquet python3-pylsp
et l'affaire est dans le sac ! Pour vérifier les fonctionnalités activées dans Helix, on peut lancer hx --health
qui affiche un « rapport de santé » avec, entre autres informations, les fonctionalités supportées pour un grand nombre de langages.
Voici quelques commandes que j'utilise souvent dans Helix :
- Pour sélectionner une ligne, j'appuie sur
x
. Pour en sélectionner plusieurs, soit je préfixe la commande avec un nombre (3x
, comme dans vim), soit j'appuie sur x
jusqu'à avoir sélectionné toutes les lignes que je voulais. Il est aussi possible d'utiliser le mode de sélection « visuelle » en appuyant sur v
et en déplaçant le curseur.
- La command
gd
(“go to definition”) ouvre la définition de la fonction qui se trouve sous le curseur. Cette commande est super utile pour vérifier rapidement ce que fait une fonction. Pour revenir en arrière, on peut utiliser Ctrl+o
pour remonter d'un cran (“outside”) dans l'historique de navigation (Ctrl+i
permet de naviguer l'historique dans l'autre sens).
- Pour modifier un terme dans un fichier, j'appuie sur
%
pour sélectionner l'ensemble du texte, puis s
pour lancer une recherche (que je valide avec la touche Entrée
). Cela crée des blocs de sélection de toutes les occurrences du terme. Je peux ensuite appuyer sur c
pour « changer » ce texte.
- Pour ouvrir un fichier, j'active le mode Espace (Space mode) en appuyant sur la barre d'espace, puis sur
f
pour activer le sélecteur de fichiers. Quand on appuie sur la barre d'espace, Helix affiche un petit menu avec les options disponibles, ce qui est très pratique pour les apprendre (et c'est pareil pour le mode de « correspondance » (Matching mode), en placant le curseur sur un mot et en appuyant sur m
).
- Pour trouver toutes les occurences d'un mot dans tous les fichiers d'un dossier, j'utilise la recherche globable en appuyant sur la barre espace, puis sur
/
. J'utilise très souvent cette recherche pour voir à quels endroits est appelée une fonction donnée, par exemple.
- Pour commenter ou décommenter une ligne ou un bloc de code sélectionné, j'appuie sur
Ctrl+c
.
Je recommande chaudement d'essayer le tutoriel (avec la commande hx --tutor
) qui permet d'apprendre les bases de Helix ainsi que plein d'autres fonctionnalités plus avancées.
Pour finir, même si la configuration par défaut est très bonne, elle reste fortement paramétrable. Voici quelques modifications que j'utilise au quotidien :
# Un très joli thème qui fonctionne mieux que le thème par défaut avec les
# règles (voir ci-dessous)
theme = "catppuccin_frappe"
[editor]
# Affiche les buffers ouverts s'il y en a plus d'un.
# Cela affiche une ligne, un peu comme une ligne d'onglets, en haut de l'écran
bufferline = "multiple"
text-width = 80
# Affiche une règle verticale à 80 caractères
rulers = [80]
# Je trouve que le panneau qui s'affiche pour aider à compléter est un peu trop
# encombrant, donc je le désactive (on peut afficher les suggestions en
# appuyant sur Ctrl+x)
auto-completion = false
[keys.normal]
# Alt-, and Alt-. pour passer eau buffer précédent/suivant
"A-," = "goto_previous_buffer"
"A-." = "goto_next_buffer"
# Déselectionne la dernière ligne. Très pratique quand on a appuyé un peu trop
# sur x et qu'on a sélectionné trop de lignes...
X = ["extend_line_up", "extend_to_line_bounds"]
# Imite le comportement de vim en allant tout en bas d'un fichier avec la
# touche G
G = "goto_file_end"
[editor.lsp]
# Désactive le popup d'aide qui s'affiche quand on appelle une fonction et qui
# montre la signature de ladite fonction, mais qui prend, je trouve, un peu
# trop de place.
auto-signature-help = false
Je vous conseille vraiment d'essayer cet éditeur. La documentation est très complète, et la communauté est sympa et toujours là pour vous venir en aide, donc n'hésitez pas !
Commentaires :
voir le flux Atom
ouvrir dans le navigateur