Optimiser l'utilisation de TextMate
Cet article va sûrement étonner ce qui connaissent mon opinion sur TextMate : je n’ai jamais vraiment pu accrocher à ce logiciel. Mais comme je ne suis pas borné, j’ai décidé de lui donner une seconde chance et je me suis aperçu que j’étais bizarrement passé à côté de l’essentiel. Pour éviter que d’autres personnes se méprennent comme j’ai pu le faire l’ai fait, j’ai décidé d’écrire cet article. Peut-être même que les utilisateurs de longue date y apprendront quelque chose.
Pour ceux qui ne connaissent pas TextMate, voici son interface au premier démarrage :

Un peu sobre, n’est-ce pas ? L’interface de TextMate mise avant tout sur la légèreté mais les fonctionnalités sont au rendez vous : coloration syntaxique dans de nombreux langages, fragments de code prédéfinis, possibilité de rétracter des portions de code, prévisualisation de la page, gestion des onglets, possibilité de rechercher/remplacer dans un projet… On peut lui rajouter autant de thèmes, plugins et bundles que l’on veut. Les bundles regroupent en général des actions, des bouts de code et la coloration syntaxique pour les langages de programmation : PHP, Python, JavaScript, Ruby mais il en existe aussi pour des besoins plus particuliers comme le fichier de configuration de sshd, les TODO lists, le framework jQuery, etc. La principale conséquence la puissance de TextMate est sa courbe d’apprentissage, plus longue que celle d’éditeurs plus simples.
Les éditeurs de textes qui s’en rapprochent le plus sous Windows sont E (il supporte même les bundles de TextMate) et Intype. Pour Linux, le plus proche serait Scribes.
Pour les gros projets, notamment en JAVA je ne suis pas encore prêt de lâcher les IDE tels que NetBeans ou Eclipse. Pour tout le reste, TextMate semble être l’outil idéal. Voyons donc maintenant comment optimiser un peu son utilisation.
Dernière version
C’est idiot, mais assurez-vous bien d’avoir installé la dernière version : http://macromates.com. La version 2 se fait attendre depuis une éternité d’ailleurs.
Ajout de bundles et synchronisation avec le dépôt SVN
36 bundles sont installés par défaut et le dépôt Subversion officiel en contient 121. Pour récupérer les bundles manquants et mettre à jour ceux déjà installés, ouvrez le terminal et tapez les lignes suivantes :
mkdir -p /Library/Application\ Support/TextMate
cd !$
export LC_CTYPE=en_US.UTF-8
svn co http://svn.textmate.org/trunk ./
Au bout de quelques minutes vous aurez installé et mis à jour tous les bundles disponibles. Pour choisir ceux à activer ou non, ouvrez TextMate et allez dans le menu Bundles > Bundle Editor > Show Bundle Editor, puis dans Filter List… en bas.
Il reste à créer un script qui rendra plus pratique les prochaines mises à jour. Toujours dans le terminal, éditez le fichier /usr/local/bin/mateup avec TextMate :
mate /usr/local/bin/mateup
Puis copiez dans le fichier :
#!/bin/sh
cd /Library/Application\ Support/TextMate
export LC_CTYPE=en_US.UTF-8
sudo svn update
Enregistrez le et effectuez une dernière une commande pour lui donner les droits suffisants :
sudo chmod +x /usr/local/bin/mateup
Ça y est, pour mettre à jour vos bundles il vous suffira de temps en temps de taper la commande mateup dans le terminal. Pour vous tenir au courant, je vous encourage à suivre le flux RSS des mises à jour des bundles.
Ajout du plugin ProjectPlus
ProjectPlus est un plugin qui rajoute à TextMate des fonctionnalités comme :
- Un nouveau panneau latéral (on peut le désactiver dans les préférences si on préfère l’original ou encore celui fourni par le plugin MissingDrawer).
- Des icônes qui s’affichent à côté de chaque fichier versionné pour indiquer leur statut.
- La conservation de l’état de l’arbre des fichiers (dossiers ouverts ou pas) d’une utilisation à une autre de TextMate.
- Plusieurs options de tri supplémentaires sont disponibles pour ordonner la liste de fichiers et dossiers.
- Etc.
Ces nouveautés ne sont disponibles que pour les prochains projets que vous créerez.

Ajout d’un bouton dans le Finder
Application très pratique mais peu connu, on peut placer un bouton dans la barre d’outils du Finder pour ouvrir TextMate. Si rien n’est sélectionné il ouvre le dossier actuel en tant que projet. Si un fichier seul est sélectionné, alors il ouvre juste ce fichier. Si plusieurs fichiers et/ou dossiers sont sélectionnés, il ouvre TextMate avec comme contenu du projet les fichiers sélectionnés.
Vous pouvez aussi glisser-déposer des fichiers et/ou dossiers directement sur l’icône.
La procédure d’installation est décrite dans l’article “Open in TextMate” from Leopard Finder de Henrik Nyh.

Commande “Open Finder”
Si vous avez activé le bundle Shell Script, vous disposez du raccourci-clavier ⌃⇧O pour ouvrir le terminal dans le dossier où se trouve le fichier édité. Henrik Nyh, le même auteur que l’astuce précédente a développé une commande qui permet d’ouvrir le même dossier, mais dans le Finder.
La procédure d’installation est décrite dans son article TextMate “Open Finder” command.
Raccourcis clavier les plus utiles
Chacun a ses raccourcis les plus utiles, voici une partie des miens :
| Raccourcis clavier | Action |
| ⌃⌘T (Bundles → Select Bundle Item…) | Affiche la liste des commandes disponibles dans le contexte actuel, et permet de faire un recherche parmi elles. |
| >⇧⌘L (Edit → Select → Line) | Sélectionne la ligne courante. |
| ⌥⇥ and ⌥⇤ ( ⇤ correspond à ⇧⇥) | Change le degré d’indentation des lignes sélectionnées |
| ⎋ (Edit → Completion → Next Completion) | Affiche l’auto-complétion. |
| ⌃⇧K (Text Bundle → Delete Line) | Supprime la ligne courante |
| ⌘E | Remplace le(s) terme(s) à rechercher sans faire apparaître la boîte de dialogue. (⇧)⌘G permet ensuite de naviguer entre les résultats. |
| ⇧⌘E | Remplace le(s) terme(s) de remplacement sans faire apparaître la boîte de dialogue. |
| ⌃S or ⌃⇧S | Effectue une recherche à la volée. |
| ⌘↩ | Va à la fin de la ligne et en ajoute une nouvelle. |
| ⌘⌥↩ | Va à la fin de la ligne et place le caractère de fin de ligne quand c’est possible (“;” par exemple). |
| ⇧⌘↩ | Idem que le précédent mais ajoute en plus une nouvelle ligne. |
| ⌥⌘↩ | Insère une nouvelle ligne avant la ligne courante. |
| ⌘/ | Commente/décommente la ligne. |
| ⌥⌘/ | Ajoute/enlève un bloc de commentaire. |
| ⌘T | Permet d’accéder rapidement à un fichier du projet. |
| ⌘⇧T | Recherche dans tout le projet. |
| ⌥⌘. | Insère la balise fermante (en HTML). |
| ⌃<) | Transforme la sélection en balises ouvrante et fermante. |
Attention à bien avoir activé les bundles suivants : Text, Source et TextMate. Ils proposent des commandes pratiques.
Bonus : ShellHere
Dans le même genre que le bouton du Finder qui ouvre TextMate, voici le bouton qui ouvre le terminal dans le bon dossier. Il existe d’autres scripts (comme Open Terminal Here) mais ShellHere est mieux fini.
La procédure est la même que pour rajouter TextMate dans le Finder : mettez l’application ou vous souhaitez, par exemple, dans le dossier Applications/ de votre profil (dossier à créer s’il n’existe pas) et glissez ensuite l’application dans la barre d’outils.