Atom can sublime text

Quand on code, la question de l’éditeur est importante et peut enflammer les foules (les vimistes et emacsiens savent de quoi je parle). Pour mon usage du python, j’oscille entre sublime text et Atom.

Et même s’il est possible que je switch pour d’autres éditeurs très prochainement (on me parle beaucoup de pycharm et VScode que je commence gentiment à découvrir) je veux vous parler ici d’Atom, parce qu’il est cool, gratuit et open-source ce qui mérite bien un post.

Pour ceux qui connaissent déjà tout ça, je vous invite à scroller directement à la partie d_es addons Sub-Atomic._

Pré en bulle (d’information)

Basé sur des technos web électron, Il a été conçu par la team Github et propose de fait une très bonne intégration avec ce dernier. L’éditeur Atom est une sorte de clone de sublime text (… son petit frère en quelque sorte). Il lui ressemble énormément au niveau UI/UX et possède lui aussi ce multicurseur de texte si agréable à utiliser.

Note : Pour la suite de ce document, j’appellerai parfois “caret”, le curseur d’entrée de texte pour mieux marquer la différence avec le curseur de souris.

Pour installer la sauce et vous renseigner davantage, rendez-vous sur https://atom.io/

Des raccourcis qui vont bien

La bonne nouvelle c’est qu’il est extrêmement facile de basculer entre Sublime, Atom et VScode, les raccourcis principaux étant exactement les mêmes. La plupart sont devenus des sortes de standards pour les éditeurs modernes. Pas besoin donc de se dire le fameux «Si j’apprends avec ce logiciel je ne serai sans doute pas efficient avec un autre ! mais qu’est ce que je vais faire de ma vie ?! » ce qui, vous l’admettrez, enlève une part de stress.

Je vous mets rapidement les deux raccourcis à connaître absolument :

Ctrl + alt + p pour appeler la barre multifonction (idem dans sublime et VScode). S’il y en a un seul a retenir au début c’est peut être celui-là. C’est cette barre qui permet d’appeler n’importe quelle autre fonctionnalité (taper par exemple “install package” pour ouvrir la gestion des addons et télécharger ceux dont je vais vous parler plus bas :p )

Ctrl + d pour sélectionner l’occurrence suivante de la sélection et poser un caret supplémentaire. Certainement le combo que je spamme le plus. Note importante sur le fonctionnement qui le rend très puissant. Si le caret est placé au début d’un mot (sans le surligner), l’occurrence suivante sera prise en compte uniquement si c’est exactement ce mot avec un espace avant et un après (pas valide s’il est rattaché à un autre). Ce qui est super     pratique pour renommer un set de variables par exemple.

Des addons Sub-Atomic

Une fois un tout petit peu familiarisé avec la bête, une des premières activités consiste à “Pimper son éditeur”. À commencer par le rendre un peu plus sublime like, car si certaines super features ne sont pas présentes de base, des plug-ins existent pour corriger le tir (portant d’ailleurs souvent la mention “as in sublime-text”).

Pour installer un addon il faut vous rendre dans le menu install package (ctrl+alt+p remember ?) et rechercher la fonctionnalité convoitée.

A noter que si vous devez en installer beaucoup ou refaire une nouvelle install, l’outil en ligne de commande apm est très pratique (et accessible dès l’installation terminée) !

Il vous suffit d’ouvrir un invite de commande …

Windows : _alt+r_ > ‘cmd’ > _enter_ ; Mac : spotlight > ‘terminal’ ; linux : _ctrl+alt+t_

Puis d’entrer apm install nom-du-paquet nom-dupaquet-suivant. Donc simplement en conservant le titre du plug-in dans un fichier texte vous pouvez vous faire un petit playbook d’install ultra rapide.

Je vous cale mes petites lignes apm perso après les descriptions.


Les indispensables

Sans plus attendre, voici les addons à adopter pour retrouver une expérience sublime !


sublime-style-column-selection

Permet de placer des carets en cliquer-glisser pour faire rapidement des selections de zones (par défaut sur le clic molette dans sublime text). Le raccourci par défaut sera sur alt+clic, mais il suffit d’aller dans les préférences de l’addon pour le changer, clic molette reste un must (si vous n’êtes pas sur linux)


highlight-selected

Encadre les autres occurrences de la sélection courante dans le reste du texte (et comme ça tu vois où ton prochain ctrl+d va te faire atterrir). À toi qui vient de sublime text : Oui je sais c’est pas présent par défaut !… Bé installe le au lieu de de râler.


expand-region

Là on touche à du lourd. Une fois calé sur un raccourci vous pouvez étendre ou contracter la sélection. Très pratique pour remplacer un contenu entre guillemets/parenthèse/crochet. Il n’y a pas de raccourci associé aux actions étendre/contracter une fois activé, mais voici comment les configurer (je vous propose en plus mon raccourci perso ultime) :

ctrl+shift+p > “keymap” > ‘open your keymap’

Ajouter simplement le texte suivant à la fin du fichier qui va s’ouvrir suivant au fichier keymap.cson:  

pour pc/linux

'atom-text-editor':
  'ctrl-shift-space': 'expand-region:expand'
  'ctrl-shift-alt-space': 'expand-region:shrink'

pour mac

'atom-text-editor':
  'ctrl-shift-space': 'expand-region:expand'
  'ctrl-shift-cmd-space': 'expand-region:shrink'

expand-selection-to-quotes

Parfait compagnon du plug-in précédent, il permet d’étendre la sélection seulement aux guillemets alentour avec ctrl+” (j’espère juste que le shortcut est valable sur azerty… Ce n’est pas ma faute si vous avez un clavier inadapté en même temps ^^)


atom-transpose

Permet d’intervertir 2 sélections ou plus avec ctrl+shit+t/alt+t. S’il n’y a pas de sélection, c’est les 2 lettres autour du caret qui vont swapper. 


script

Vous permet d’exécuter directement votre code courant depuis la console Atom via une petite claque sur ctrl+b (cmd+i sur mac),  (il me semble que c’est ctrl+alt+b dans sublime). Il permet aussi d’exécuter le code en s’arrêtant à la ligne courante avec ctrl+shit+j. Pour le python c’est pratique en tout cas !

Installez tout ça avec apm install sublime-style-column-selection highlight-selected expand-region expand-selection-to-quotes atom-transpose script

Bon, maintenant qu’on a le minimum syndical on peut aller plus loin.


Pas de bon mini-pirate sans bonne mini-map

minimap

Barre latérale qui montre une version miniature de votre code et qui sert de scrollbar. Bah oui michel, c’est pas présent de base non plus, faut l’installer. Mais bon, c’est bien aussi d’avoir un éditeur livré à poil. 

Il faut préciser que les plug-ins de minimap sont désactivable à la volée avec le settings situé dans coin supérieur de cette dernière.

minimap_opts


minimap-highlight-selected

Mettre en surbrillance les occurrences de la sélection dans la minimap également 


minimap-find-and-replace

Mets en surbrillance les résultats de recherche dans la map


minimap-split-diff

Colore les conflits dans la map lors d’un split diff, nécessite `split-diff`.

apm install minimap minimap-highlight-selected minimap-find-and-replace minimap-split-diff


Plus expérimental :

minimap-autohider

Si vous souhaitez la faire apparaître uniquement pendant le scroll.


minimap-codeglance

Faire apparaître la ligne survolée dans la minimap en mode loupe.

apm install minimap-autohider minimap-codeglance


Divers pour le workflow

git-time-machine

Pour les plus commiteurs d’entre vous il parait que c’est sympa à utiliser


emmet

Un package qui ajoute pas mal de fonctionnalités et shortcuts surtout orientés dev web, mais ce qui est trop bien c’est les raccourcis pour incrémenter/décrémenter les nombres sélectionnés avec ctrl+flèches


copy-path

C’est quand même pratique de pouvoir récupérer les infos relatives au chemin pointant vers le fichier courant avec un simple petit clic droit sur l’onglet.

apm install git-time-machine emmet copy-path


Le fun factor, inutile donc indispensable.

glowing-cursor

cursor_glow_width

Pas tant pour le côté Tron que pour pouvoir contrôler la visibilité du curseur à votre convenance (luminosité, vitesse de clignotement, épaisseur) et gagner en style au passage.


activate-power-mode

Fin de journée, fatigué, le power mode peut vous redonner un petit coup de patate avec des frappes plus puissantes dans l’éditeur. Essayer juste aussi d’activer le son dans les prefs du plug-in, ça triple carrément la puissance ! À utiliser avec modération toutefois.


copy-paste

Permet un coller spécial sur ctrl+alt+v qui va coller chaque caractère un par un à intervalle régulier pour faire un effet de frappe continue. Fonctionne à merveille en combo avec le power mode, et vous pouvez même enregistrer le tout en gif en live avec le package screen-recorder, si c’est pas délicieusement useless tout ça !

Thème ou thème pas

Un thème plaisant ça apaise l’esprit et ça permet de coder zen. Accessible au même endroit que les addons dans la catégorie install package, passer juste sur l’onglet thème à côté de la barre de recherche. Vous pouvez également les installer via `apm`.

Si vous êtes vraiment accro à l’expérience sublime-text vous pouvez toujours installer le Thèmes style monokai sublime : https://atom.io/themes/sublime-ui-dark

et le thème syntaxe qui va avec : https://atom.io/themes/atom-sublime-monokai-syntax

apm install atom-sublime-monokai-syntax sublime-ui-dark

Puis les changer dans le menu thème des settings. J’ai personnellement tendance à rester sur le thème One dark built-in que je trouve assez reposant.

Finish Combo

Pour les plus joueurs d’entre vous d’entre vous,  voici la mega-ligne apm pour installer tous les plug-ins cités précédemment :

apm install  sublime-style-column-selection highlight-selected expand-region expand-selection-to-quotes atom-transpose script git-time-machine emmet copy-path minimap minimap-highlight-selected minimap-find-and-replace minimap-split-diff minimap-autohider minimap-codeglance glowing-cursor activate-power-mode copy-paste atom-sublime-monokai-syntax sublime-ui-dark

Bon vous voilà avec une bonne base…


Je précise quand même que sous le capot sublime text reste beaucoup plus rapide et optimisé qu’Atom, mais il n’est pas gratuit. Atom reste donc un très bon éditeur. Sa gratuitée couplée à son open-source-itude en font un très bon outils à avoir sur sa machine.

Si vous aimez (ou créez !) d’autres bons packages Atom-VS-sublime, surtout parlez-en dans les commentaires. Comme on dit, « c’est toujours bon d’avoir plus d’un plug-in dans son sac ! ». Enfin je crois qu’on dis ça…

Ah oui tiens… et si vous n’aimez pas les posts de 2 km de long dites-le-moi aussi. J’aime être exhaustif, mais si c’est trop lourd à lire je ferai un effort pour raccourcir les futurs posts ou les splitter en sous-articles.

À vos clavier et happy coding.