Patrice Ferlet
Patrice Ferlet
Créateur de ce blog.
Publié le nov. 13, 2015 Temps de lecture: 6 min

Me suivre sur Mastodon

Atom.io, l'IDE qui me donne presque envie de me passer de vim

Atom.io est un IDE multiplateforme, libre, pratique et modulaire. Bourré de plugins, ergonomique, il entre peu à peu dans mon univers de logiciels à utiliser quotidiennement. À tel point, que je pense à me passer de Vim pour certains projets et utiliser ce dernier. Pouquoi ? bha je vais vous expliquer.

Depuis 2001 que je fais ce métier, j’ai utilisé un bon paquet d’IDE (Integrated Development Environment) tels que Eclipse, PyCharm, Netbeans, et autres Anjuta, etc. Chacun de ces IDE m’ont laissé sur ma fin, certains m’ont énervé, d’autres m’ont juste déçu, et dans tous les cas je suis revenu à Vim. Vim est certes un “editeur” d’un certain point de vue, archaïque pour certains, mais tellement puissant. Vim me permet de développer efficacement avec des plugins qui enlèvent littéralement la complexité d’un tel environnement.

Auto-completion, gestion de Git, terminal intégré (surtout avec neovim), coloration propre, rapide, et utilisable dans mon terminal. Vous me direz “oui mais bon, c’est pas à la portée de tous”, j’en conviens. Cela-dit, en quelques heures, voir quelques jours, Vim s’adopte pour la plupart des gens qui s’y penchent. En gros, quand on y goûte, on a du mal à passer à un autre outil.

Sauf que là… je tombe sur Atom.io, et je doute… oui mesdames et messieurs, je doute !

À première vue

Atom n’est pas l’unique projet à chercher à convaincre. LightTable et Brackets sont deux exemples très proches de SublimeText qui visent à rendre l’environnement de développement “agréable”. Je les ai testé, sans conviction, et je suis revenu (pour les 3) à Vim après quelques heures. Alors pourquoi Atom.io me convainc un peu plus ?

Pourtant, Atom ne paye pas de mine. A première vue on dirait un éditeur “décoré” pour faire “pro”, qui va nous claquer dans les doigts quand on va chercher à faire de l’auto-completion complexe. Par exemple, avec Go, faut utiliser un binaire nommé “gocode” qui permet d’auto-compléter le code. Et je me dis que je vais me marrer quand je vais tenter le coup.

Mais bon, je suis bon joueur, je suis pas du tout fermé et j’aime tester. Donc j’installe “Atom.io” via le RPM fourni, et je lance la bête.

Test 1, on lance allume le jouet

Bon sang… il se lance vite le bougre ! Sérieusement je m’attendais à un chargement de plusieurs secondes, il n’en est rien. Atom a démarré en 1 seconde, la page de “welcome” est pas mal, elle explique en quelques lignes que je vais pouvoir m’amuser à y placer des plugins, des thèmes, etc.

Ça me plait bien ça, je peux directement ajouter des “snippets”, apprendre les racourcis clavier, et l’interface est propre, sans trop de fioritures, en bref c’est simple et beau.

Atom welcom

Test 2, on code !

Bon allez j’ai du boulot moi! J’ouvre un projet Go et je me lance dans le code. Hop un fichier ouvert et… arrrggg pas de completion, pas de formatage auto de mon code… Zut et zut.

Ok, j’avoues, pour Vim j’ai du installer un plugin “vim-go”. Donc dans Atom, je vais certainement faire pareil. Allez, sans conviction, je tente. Direction des settings, “install” et je cherche “golang”.

Etonnement ! Des plugins existent. Je vérifie les deux qui me paraissent intéressant: go-plus et go-runtime. Mais en lisant la doc du plugin, je découvre un truc: on a deux façons d’installer un plugin.

  • Soit en cliquant sur le bouton “installer”
  • Soit en utilisant la ligne de commande “apm”

Allez, je me fais un kiff, je tente les deux :)

D’abord, “go-runtime” en cliquant sur “install”: ça marche.

J’ouvre un terminal et je tape:

apm install go-plus

Et bha ça marche aussi. Et cerise sur le pompon: pas la peine de redémarrer Atom.

Voyons voir mon code, j’édite mon fichier, je tape le nom d’un objet suivi d’un point et hop, la completion s’active.

Atom autocomplete golang

Bien, sérieusement bien !

Le racourci qui sauve

Ce qui parrait toujours compliqué sur Vim, c’est l’apprentissage des racourics. J’ai beau adoré mon vieux copain Vim, je ne peux pas mentir en disant que c’est parfois un peu… allez, disons-le, “tordu”.

Mais une chose absolument géniale à laquelle ont pensé les auteurs de Atom, c’est que quand vous démarrez l’IDE “à vide”, c’est-à-dire sans fichier ouvert (ou si vous fermez tous les fichiers), des messages d’astuces défilent sur l’écran. Et je découvre le racourci “CTRL+Maj+P”.

C’est tout bonnement “LE” racourci à connaitre. Il permet de trouver les fonctionnalités classés par plugin.

Les plugins que j’ai adoré

Le premier, vous allez dire que je suis franchement intoxiqué, c’est “vim-mode-plus” qui me permet d’avoir les “racourcis” de vim. Je ne voyais pas comment me passer du racourcis “cit” pour changer le texte “entre tag” d’un fichier HTML. Et je préfère me passer des “CTRL+C CTRL+V”, trouvant “dd”, “p” et “yy” plus accessibles sur mon clavier.

Oui, je sais, il existe plein de plugins pour simuler Vim dans plein d’IDE. Je ne dis pas le contraire, et c’est pas ce qui a fait la différence. Le fait est que sans ce plugin, j’aurais peut-être fermé Atom après quelques heures. Ce plugin a le mérite d’exister.

Sinon, les plugins git:

Le plugin pour avoir un terminal de commande:

Atom terminal plus

Et comme je vous l’ai dit, pour Go:

Et pour pas péter mon cable, j’ai installé

Il existe énormément de plugins pour vos projets, autocompletion pour Angular, projet Python, etc…

La seule chose qui me manque, mais je suis certain qu’un jour il va apparaitre, c’est le fait de lancer un debugger (Gdb et Pdb). Il existe un plugin pour Gdb mais apparement il n’y a pas de “watcher” (pour voir le contenu de la variable). Donc pour debugger mes programmes en Go, c’est pas gagné à ce jour.

Alors, oui, je l’admet sans problème, Atom me donne presque envie de me passer de vim… Je me tate les amis, je me tate…

Je me tate mais…

Mais voilà… Je me force à utiliser Atom pour lui donner sa chance, pour par mourir bête et parce que je trouve que les développeurs de cet IDE méritent le respect. Cela-dit, j’ai toujours un terminal ouvert dans un coin pour plein de trucs et j’ai le réflexe de taper “vim” pour éditer un code source rapidement.

Impossible à ce jour de me résoudre à passer “tout le temps” par Atom. Vim est ancré dans mes habitudes, je connais tous les racourcis utiles à mon travail…

C’est d’ailleurs un truc qui me travaille sur tous les IDE: les racourcis étranges. Expliquez moi pourquoi je dois faire “CTRL+Shift+X” pour commiter un fichier ? Quelle est la logique derrière le “X” ? Vim a pour lui le fait d’être plus clair à condition de lire une fois la doc. Exemple, je veux “indenter dans le bloc”, je fais “>iB” pour “indent Inside Block”. Quand on comprend la logique de Vim, ça se retient en un rien de temps. Par contre, dans Atom, sans le racourci “CTRL+Shift+P”, pas moyen de retenir la séquence de touches proposée qui n’a pas de valeur sémantique.

C’est bête, mais c’est une des principales raisons qui gâche le plaisir de passer sur un autre IDE. Vous me direz, je pourrais modifier les bindings, mais y’en a tellement.

Mais je vous le dis, sans honte, Atom me donne bien envie de pousser l’expérience plus loin.

comments powered by Disqus