var Phenix = function () {
Troll du Web depuis 1996

Sublime Text

Adieu Sublime Text !

Bonjour Emacs

Adieu Sublime Text, tu étais un éditeur de code sympa. Mais maintenant, c’est fini !

C’est fini, parce que ton développement est au point mort depuis 1 an et demi. Il y a bien quelques releases, mais pas assez pour me faire croire que quelqu’un travaille encore vraiment dessus.

Entre l’avant-dernière « Dev build » et la dernière il s’est écoulé plus de 5 mois. Pour faire une release avec seulement 4 points : un bug fix et une nouvelle fonctionnalité largement buggée...

La présence inexistante du développeur sur le forum officiel ne me donne pas plus confiance dans la pérennité du logiciel.
Ce forum est d’ailleurs assez magique, puisque l’excuse au manque de release que l’on trouve parfois est que le dev est... en vacance. Putain, 5 mois de vacances, il a dû en vendre des licences de Sublime !

Décevant, c’est le mot qui me vient à l’esprit quand j’évoque ce logiciel. D’autant qu’il n’est pas Open Source, impossible pour l’énorme communauté qui est autour de prendre le relai.

Le changement cela fait toujours peur, surtout quand on choisi de passer à Emacs.

Quand on voit la tête de la courbe d’apprentissage, on se dit qu’il y a du travail :

J’ai fait une transition en douceur, car je ne peux pas vraiment arrêter de coder pour apprendre Emacs. Car bon, c’est mon travail après tout.
J’ai commencé par apprendre chez moi. Emacs est un logiciel déroutant conçu il y a ... 38 ans (1976). Il y a beaucoup de documentation sur le net, apprendre Emacs c’est un peu réapprendre à utiliser un ordinateur, le logiciel possède sa propre ergonomie et sa propre logique.

Pourquoi Emacs ?

Parce qu’il est tout l’inverser de Sublime Text :

  • Open source.
  • Supporté par … tout (mais vraiment TOUT).
  • Extensible à souhait, c’est un langage de programmation en lui-même : Lisp.
  • Personnalisable à mort, pour peu qu’on prenne le temps d’apprendre le Lisp.

Il y a cependant des fonctions que j’aimais bien dans Sublime Text que je veux retrouver dans un logiciel de code.

Auto-complet (AC)

Le premier package à installer est certainement l’auto complétion. Probablement une des mieux fichues que j’ai vue.

Web-mode

Quand on travaille sur des fichiers web, on se rend compte rapidement que c’est un peu la foire. En réalité, un fichier web, C’EST la foire !

Du JavaScript, du PHP, du HTML avec des attributs qui contiennent n’importe quoi, du css, inline ou pas… Bref c’est n’importe quoi !

Du coup, la coloration syntaxique ne sait plus trop ce qu’elle doit faire.

Heureusement il suffit d’installer web-mode pour retrouver la raison !

L’intégration avec Git

Cela se fait avec magit et comme les plugins Sublime Text s’inspirent largement de Magit l’interface est la même.

Projectile

Projectile fait de la gestion de projet dans Emacs. Cela facilite la recherche dans les fichiers. Penser à installer ack car grep c’est vraiment trop de prise de tête.
Une fois Ack installer, il y a deux packages Emacs qui l’intègre directement :

  • ack
  • ack-and-a-half

Magie !

IDO mode

Ido mode rend vraiment la vie plus facile. Du coup, on installe le package ido-ubiquitous et personnellement j’ai aussi ajouté ido-vertical-mode pour rendre tout cela plus lisible.

Après c’est selon les goûts.

Il FAUT activer le flex-matching pour profiter pleinement d’IDO :

  1. (setq ido-enable-flex-matching t)

Les touches directionnelles OSX

Un détaille qui m’a rapidement rendu fou, c’est que l’utilisation des raccourcis clavier des flèches directionnelles n’était pas le standard d’OSX.
CMD+Flèche gauche ne revoyait pas à la fin de la ligne. et CMD+flèche du haut ne ramenait pas au début du document…

J’avais l’habitude de cela dans tous les autres logiciels. Pour le coup, s’était à Emacs de s’adapter.

J’ai ajouté quelques lignes dans le .emacs :

  1. ;; ajouter les mouvements OSX via les CMD+flèche
  2. (global-set-key (kbd "s-<right>") 'move-end-of-line)
  3. (global-set-key (kbd "s-<left>") 'move-beginning-of-line)
  4. (global-set-key (kbd "s-<down>") 'end-of-buffer)
  5. (global-set-key (kbd "s-<up>") 'beginning-of-buffer)

Autre astuce, j’avais dans Sublime Text l’habitude de dupliquer facilement une ligne sans avoir à faire de copier-coller.
La même chose dans Emacs :

  1. ;; pouvoir dupliquer une ligne
  2. (autoload 'copy-from-above-command "misc"
  3. "Copy characters from previous nonblank line, starting just above point.
  4.  
  5. \(fn &optional arg)"
  6. 'interactive)
  7.  
  8. (global-set-key (kbd "s-d") 'copy-from-above-command)

Un peu de Sublime Text dans Emacs

Mettre en surbrillance la ligne courante :

  1. (global-hl-line-mode 1) ; turn on highlighting current line

Affiche les numéros de ligne :

  1. (global-linum-mode 1) ; display line numbers in margin. Emacs 23 only.

Écrire sur du texte sélectionner le supprime (c’est assez déroutant comme comportement…) :

  1. (delete-selection-mode 1) ; quand on sélectionner du texte, écrire supprime le texte sélectionné.

J’avais un plugin sous Sublime Text qui supprimait les espaces inutiles à la sauvegarde du fichier (TrailingSpaces). Dans Emacs, il suffit d’activer l’option ;

  1. (add-hook 'before-save-hook 'delete-trailing-whitespace) ; supprimer les espaces en trop à la sauvegarde

Par défaut, Emacs gère les sauts de ligne de manière étrange. Pour avoir des sauts de ligne de 2014, il suffit de demander :

  1. (global-visual-line-mode 1) ; Wordwrap correct et pas des blocs de texte

Et je n’ai fait qu’effleurer la surface de ce monstre, il y a tellement de choses qui sont possibles. L’excellent Org-mode a lui tout seul est un véritable défi qui vaut le détour tellement c’est puissant !

Il faut du courage pour passer à Emacs, mais ça en vaut la peine, car c’est réellement un logiciel qu’on peu adapter à nous. Rien ne nous est imposé.


Ajouter Sublime Text 2 à votre terminal

Je suis un grand fan de l’éditeur de code Sublime Text 2 et aussi, un grand fan du terminal. Et j’ai toujours regretté de ne pas pouvoir utiliser l’un dans l’autre sur mon Mac.

Eh bien, j’ai découvert que c’était possible ! Il y a même une page de documentation dédiée.

Mais je n’aimais pas trop la méthode des liens symboliques. D’abord parce que taper « subl » c’est deux lettres de trop pour moi. Ensuite parce que je trouve ça un peu sale.

Voici une autre méthode :

Ouvrez un terminal et tapez.

  1. nano .profile

Vous devriez avoir un truc qui ressemble à ça avec moins de texte dedans :

nano .profile

Ensuite, déplacez-vous en fin du fichier et ajoutez le code suivant :

  1. # Lancer sublime text
  2. alias st="/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
  3. # Sublime text 2 en éditeur par défaut
  4. export EDITOR='st -w'

La première ligne ajoute la commande « st » pour ouvrir Sublime Text, la seconde le définit comme éditeur par défaut du terminal.

Fini d’ouvrir des trucs dans nano !


Sublime-SPIP

Sublime-SPIP est un plugin pour Sublime text 2 , mon éditeur de code préféré pour le moment.

alpha_ui_large-650x433.png

Ce plugin ajoute le langage spécifique au CMS SPIP grâce à une collection de snippet. Il ajoute également les balises spécifiques aux squelettes de spip.

Ce plugin permet :

  • Création rapide de Boucle SPIP via le raccourci BOUCLE (tapez BOUCLE puis faite ctrl+espace)
  • L’autocomplétion des balises SPIP.
  • L’ajout de critère dans les boucles spip.
  • Deux snippets pour créer rapidement des formulaires CVT spip.
  • Un snippets pour créer rapidement un fichier de langue spip.
  • L’autocomplétion de certaines fonctions PHP de spip.
  • L’autocomplétion des filtres SPIP.

Ce plugin est disponible sur mon GitHub.

sublime-<span class="caps">SPIP</span>.png
Download