J’étais toujours sous CopainTexte 1.x (et ce depuis 2005 !) jusqu’à la réception d’un email d’Allan Odgaard à l’objet intrigant : TextMate & Mavericks. Il y évoque un problème de compatibilité de certains Bundles
avec la version par défaut de ruby
dans Mavericks et propose des solutions dont :
Our recommended fix is to upgrade to TextMate 2.0
Je ne suis pas encore passé à Mavericks mais je prépare le terrain alors j’ai installé TextMate 2.0 tout de go.
Et j’ai retrouvé le même plaisir que j’ai pu éprouver en installant TextMate premier du nom :)
La version 2.0
est toujours estampillée alpha parce que la documentation n’est pas bouclée mais que de changements depuis les 1.5.x
.
Noix de Cocoa
Sous Mac OS, la plupart des applications Cocoa supportent une sélection basique de raccourcis claviers saveur Emacs. Ceci est probablement un héritage de NeXTSTEP. Si la plupart ont des équivalents clavier (les flèches par exemple), certains restent intéressants :
⌃E
et⌃A
pour déplacer le curseur en début ou fin du paragraphe courant⌃D
efface un caractère après le curseur⌃K
et⌃Y
le copier coller qui se passe du presse-papiers d’OS X⌃O
insère une nouvelle ligne avant le curseur⌃V
scroll à l’écran suivant
Les plus dingues d’entre vous peuvent customiser le comportement du système texte de Cocoa, avec NSRepeatCountBinding
par exemple.
Et puis il y a la transposition avec ⌃T
que TextMate améliore.
Le coup du dictionnaire dans les applications Cocoa fait aussi son petit effet : ⌃⌘D
sur une sélection de mot.
Changer de syntaxe
⇧⌃⌥
+ [A-Z]
On peut aussi maintenant définir la syntaxe par défaut des nouveaux documents dans les préférences.
Gear Menu
⌥F1
(anciennement ⌃esc
).
Bundles
Les Bundles dans TextMate 2 sont maintenant gérés via les préférences et sont mis à jour automatiquement :
A
bundle
is a collection of macros, commands, snippets, drag commands, templates, preferences, and language grammars.
Parmis mes favoris :
- Wrap Word as Link
⇧⌃L
(Bundle
Hyperlink Helper) - Extend Selection to Include Next
⌃W
(Bundle
Text)⌃W⌃W⌃W⌃W
:) - Duplicate Line (or Selection)
⇧⌃D
(Bundle
Text) - Join Line With Next
⇧⌃J
(Bundle
Text) - Evaluate Line
⇧⌃C
(Bundle
Math) - Insert Open/Close Tag (With Current Word)
⌃<
(Bundle
HTML)
Et si on a oublié le raccourci d’une action de Bundle
: ⌃⌘T
.
Il y a aussi pas mal de Bundles
tiers bien utiles, je pense à JSLintMate qui intègre JSLint (wesh Dougy) et JSHint.
Historique du presse papier
⌃⌥⌘V
Mais vous êtes un power user et vous faites peut-être déjà ça à l’échelle du système via le plugin Clipboard de Quicksilver ou une autre solution.
Configuration façon .git
Aye papito! Bienvenue au fichier .tm_properties
!
Voyez cet exemple d’exclusion de certains fichiers de la fonction de recherche de TextMate. Pratique pour exclure les migrations South de la recherche par exemple.
Si un setting du fichier .tm_properties
est en majuscule, il devient disponible en tant que variable d’environnement pour les commandes et snippets des Bundles
. Magie vaudou no limit :) Je m’en suis servi pour lancer pylint
en fonction du virtualenv
paramétré dans le .tm_properties
.
Curseurs multiples
Le mode column selection et la commande de TextMate 1 sont remplacés par les curseurs multiples.⌥⌘A
Lisez Multiple Carets pour davantage d’informations puissantes.
Et enfin je peux faire dans TextMate ce que font les autres dans Sublime :)
⌘E
sur une sélection⌥⌘F
mate
mate
en ligne de commande fonctionne maintenant avec sudo
\o/
mate
accepte des Selection Strings :
mate -l 3 toto.txt
place le curseur à la ligne 3mate -l 3:16 toto.txt
place le curseur à la ligne 3 et à la colonne 16mate -l 3:30-3:42 toto.txt
place le curseur à la ligne 3 et effectue une sélection de la colonne 30 à la colonne 42mate -l '3&6' toto.txt
place des curseurs multiples aux lignes 3 et 6
Et les Selection Strings fonctionnent aussi avec ⌘L
(Go to Line) et ⌘T
(Go to File).
rmate
La commande rmate
(un script ruby
) permet d’utiliser TextMate en local pour éditer un fichier distant via un tunnel SSH.
Pour cela il vous faudra vérifier que vous avez ruby
sur votre machine distante puis y installer rmate
:
sudo curl -Lo /usr/local/bin/rmate https://raw.github.com/textmate/rmate/master/bin/rmate
sudo chmod a+x /usr/local/bin/rmate
Ensuite il vous faudra ouvrir un tunnel SSH entre votre machine locale et votre machine distante.
Notez que rmate
est standalone et que vous pouvez tout aussi bien l’utiliser via Sublime Text 2 par exemple.
Autocomplétion intelligente
Programming is hard enough all on its own, so anything that can make it easier is a win.
TextMate 2 permet maintenant d’utiliser le complètement (touche esc
) à gauche ou à droite et par conséquent même au milieu d’une chaîne de caractères !
Rechercher et remplacer
Le menu Edit > Find
propose une flopée de fonctionnalités.
Le raccourci ⇧⌘E
(Use Selection for Replace) est important et permet de se passer de la boite de dialogue dans pas mal de situations.
D’ailleurs les boites de dialogues Find
et Find in Project
ont été unifiées.
Et cætera
TextMate 2 intègre aussi les support des outils de gestion de versions, les favoris et un nouveau File Browser. On trouve aussi un nouveau Wiki sur GitHub.
Top of the pop sous OS X
Je reste un fanboy de TextMate, j’aime le minimalisme de son interface, la puissance de ses Bundles
et son intégration à OS X. Je n’ai jamais réussi à faire le switch définitif à Sublime Text, ni même à BBEdit.
C’est comme ça, il en faut pour tous les goûts !