Cet arti­cle va sûre­ment éton­ner ce qui con­nais­sent mon opi­nion sur Text­Mate : je n’ai jamais vrai­ment pu accro­cher à ce logi­ciel. Mais comme je ne suis pas borné, j’ai décidé de lui don­ner une seconde chance et je me suis aperçu que j’étais bizar­re­ment passé à côté de l’essen­tiel. Pour évi­ter que d’autres per­son­nes se mépren­nent comme j’ai pu le faire l’ai fait, j’ai décidé d’écrire cet arti­cle. Peut-être même que les uti­li­sa­teurs de lon­gue date y appren­dront quel­que chose.

Pour ceux qui ne con­nais­sent pas Text­Mate, voici son inter­face au pre­mier démar­rage :

Un peu sobre, n’est-ce pas ? L’inter­face de Text­Mate mise avant tout sur la légè­reté mais les fonc­tion­na­li­tés sont au ren­dez vous : colo­ra­tion syn­taxi­que dans de nom­breux lan­ga­ges, frag­ments de code pré­dé­fi­nis, pos­si­bi­lité de rétrac­ter des por­tions de code, pré­vi­sua­li­sa­tion de la page, ges­tion des onglets, pos­si­bi­lité de recher­cher/rem­pla­cer dans un pro­jet… On peut lui rajou­ter autant de thè­mes, plu­gins et bund­les que l’on veut. Les bund­les regrou­pent en géné­ral des actions, des bouts de code et la colo­ra­tion syn­taxi­que pour les lan­ga­ges de pro­gram­ma­tion : PHP, Python, JavaS­cript, Ruby mais il en existe aussi pour des besoins plus par­ti­cu­liers comme le fichier de con­fi­gu­ra­tion de sshd, les TODO lists, le fra­me­work jQuery, etc. La prin­ci­pale con­sé­quence la puis­sance de Text­Mate est sa courbe d’appren­tis­sage, plus lon­gue que celle d’édi­teurs plus sim­ples.

Les édi­teurs de tex­tes qui s’en rap­pro­chent le plus sous Win­dows sont E (il sup­porte même les bund­les de Text­Mate) et Intype. Pour Linux, le plus pro­che serait Scri­bes.

Pour les gros pro­jets, notam­ment en JAVA je ne suis pas encore prêt de lâcher les IDE tels que Net­Beans ou Eclipse. Pour tout le reste, Text­Mate sem­ble être l’outil idéal. Voyons donc main­te­nant com­ment opti­mi­ser un peu son uti­li­sa­tion.

Der­nière ver­sion

C’est idiot, mais assu­rez-vous bien d’avoir ins­tallé la der­nière ver­sion : http://macro­ma­tes.com. La ver­sion 2 se fait atten­dre depuis une éter­nité d’ailleurs.

Ajout de bund­les et syn­chro­ni­sa­tion avec le dépôt SVN

36 bund­les sont ins­tal­lés par défaut et le dépôt Sub­ver­sion offi­ciel en con­tient 121. Pour récu­pé­rer les bund­les man­quants et met­tre à jour ceux déjà ins­tal­lés, ouvrez le ter­mi­nal et tapez les lignes sui­van­tes :

mkdir -p /Library/Application\ Support/TextMate
cd !$
export LC_CTYPE=en_US.UTF-8
svn co http://svn.text­mate.org/trunk ./

Au bout de quel­ques minu­tes vous aurez ins­tallé et mis à jour tous les bund­les dis­po­ni­bles. Pour choi­sir ceux à acti­ver ou non, ouvrez Text­Mate et allez dans le menu Bund­les > Bundle Edi­tor > Show Bundle Edi­tor, puis dans Fil­ter List… en bas.

Il reste à créer un script qui ren­dra plus pra­ti­que les pro­chai­nes mises à jour. Tou­jours dans le ter­mi­nal, édi­tez le fichier /usr/local/bin/mateup avec Text­Mate :

mate /usr/local/bin/mateup

Puis copiez dans le fichier :

#!/bin/sh
cd /Library/Appli­ca­tion\ Sup­port/Text­Mate
export LC_CTYPE=en_US.UTF-8
sudo svn update

Enre­gis­trez le et effec­tuez une der­nière une com­mande pour lui don­ner les droits suf­fi­sants :

sudo chmod +x /usr/local/bin/mateup

Ça y est, pour met­tre à jour vos bund­les il vous suf­fira de temps en temps de taper la com­mande mateup dans le ter­mi­nal. Pour vous tenir au cou­rant, je vous encou­rage à sui­vre le flux RSS des mises à jour des bund­les.

Ajout du plu­gin Pro­ject­Plus

Pro­ject­Plus est un plu­gin qui rajoute à Text­Mate des fonc­tion­na­li­tés comme :

  • Un nou­veau pan­neau laté­ral (on peut le désac­ti­ver dans les pré­fé­ren­ces si on pré­fère l’ori­gi­nal ou encore celui fourni par le plu­gin Mis­sing­Dra­wer).
  • Des icô­nes qui s’affi­chent à côté de cha­que fichier ver­sionné pour indi­quer leur sta­tut.
  • La con­ser­va­tion de l’état de l’arbre des fichiers (dos­siers ouverts ou pas) d’une uti­li­sa­tion à une autre de Text­Mate.
  • Plu­sieurs options de tri sup­plé­men­tai­res sont dis­po­ni­bles pour ordon­ner la liste de fichiers et dos­siers.
  • Etc.

Ces nou­veau­tés ne sont dis­po­ni­bles que pour les pro­chains pro­jets que vous crée­rez.

Ajout d’un bou­ton dans le Fin­der

Appli­ca­tion très pra­ti­que mais peu connu, on peut pla­cer un bou­ton dans la barre d’outils du Fin­der pour ouvrir Text­Mate. Si rien n’est sélec­tionné il ouvre le dos­sier actuel en tant que pro­jet. Si un fichier seul est sélec­tionné, alors il ouvre juste ce fichier. Si plu­sieurs fichiers et/ou dos­siers sont sélec­tion­nés, il ouvre Text­Mate avec comme con­tenu du pro­jet les fichiers sélec­tion­nés.

Vous pou­vez aussi glis­ser-dépo­ser des fichiers et/ou dos­siers direc­te­ment sur l’icône.

La pro­cé­dure d’ins­tal­la­tion est décrite dans l’arti­cle “Open in Text­Mate” from Leo­pard Fin­der de Hen­rik Nyh.

Com­mande “Open Fin­der”

Si vous avez activé le bundle Shell Script, vous dis­po­sez du rac­courci-cla­vier ⌃⇧O pour ouvrir le ter­mi­nal dans le dos­sier où se trouve le fichier édité. Hen­rik Nyh, le même auteur que l’astuce pré­cé­dente a déve­loppé une com­mande qui per­met d’ouvrir le même dos­sier, mais dans le Fin­der.

La pro­cé­dure d’ins­tal­la­tion est décrite dans son arti­cle Text­Mate “Open Fin­der” com­mand.

Rac­cour­cis cla­vier les plus uti­les

Cha­cun a ses rac­cour­cis les plus uti­les, voici une par­tie des miens :

Quel­ques rac­cour­cis cla­vier de Text­mate
Rac­cour­cis cla­vier Action
⌃⌘T (Bundles → Select Bundle Item…) Affi­che la liste des com­man­des dis­po­ni­bles dans le con­texte actuel, et per­met de faire un recher­che parmi elles.
>⇧⌘L (Edit → Select → Line) Sélec­tionne la ligne cou­rante.
⌥⇥ and ⌥⇤ ( cor­res­pond à ⇧⇥) Change le degré d’inden­ta­tion des lignes sélec­tion­nées
(Edit → Completion → Next Completion) Affi­che l’auto-com­plé­tion.
⌃⇧K (Text Bundle → Delete Line) Sup­prime la ligne cou­rante
⌘E Rem­place le(s) terme(s) à recher­cher sans faire appa­raî­tre la boîte de dia­lo­gue. (⇧)⌘G per­met ensuite de navi­guer entre les résul­tats.
⇧⌘E Rem­place le(s) terme(s) de rem­pla­ce­ment sans faire appa­raî­tre la boîte de dia­lo­gue.
⌃S or ⌃⇧S Effec­tue une recher­che à la volée.
⌘↩ Va à la fin de la ligne et en ajoute une nou­velle.
⌘⌥↩ Va à la fin de la ligne et place le carac­tère de fin de ligne quand c’est pos­si­ble (“;” par exem­ple).
⇧⌘↩ Idem que le pré­cé­dent mais ajoute en plus une nou­velle ligne.
⌥⌘↩ Insère une nou­velle ligne avant la ligne cou­rante.
⌘/ Com­mente/décom­mente la ligne.
⌥⌘/ Ajoute/enlève un bloc de com­men­taire.
⌘T Per­met d’accé­der rapi­de­ment à un fichier du pro­jet.
⌘⇧T Recher­che dans tout le pro­jet.
⌥⌘. Insère la balise fer­mante (en HTML).
⌃<) Trans­forme la sélec­tion en bali­ses ouvrante et fer­mante.

Atten­tion à bien avoir activé les bund­les sui­vants : Text, Source et Text­Mate. Ils pro­po­sent des com­man­des pra­ti­ques.

Bonus : Shell­Here

Dans le même genre que le bou­ton du Fin­der qui ouvre Text­Mate, voici le bou­ton qui ouvre le ter­mi­nal dans le bon dos­sier. Il existe d’autres scripts (comme Open Ter­mi­nal Here) mais Shell­Here est mieux fini.

La pro­cé­dure est la même que pour rajou­ter Text­Mate dans le Fin­der : met­tez l’appli­ca­tion ou vous sou­hai­tez, par exem­ple, dans le dos­sier Appli­ca­tions/ de votre pro­fil (dos­sier à créer s’il n’existe pas) et glis­sez ensuite l’appli­ca­tion dans la barre d’outils.