Thomas Bassetto

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 3 septembre 2009

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 celui fourni par le plugin MissingDrawer).
  • Des icônes qui s'affichent à côté de chaque fichier versionné pour indiquer leur statut (fonctionne avec Git, Mercurial, SVN, Bazar, etc.).
  • 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 pour ordonner la liste de fichiers et dossiers.
  • Etc.

Ces nouveautés n'apparaîtront que pour les prochaines fenêtre ouvertes.

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 :

Quelques raccourcis clavier de Textmate
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.

lundi 17 décembre 2007

L'installation de logiciels sous Linux, Windows, et Mac OS

Ayant les 3 systèmes d'exploitations Mac OS X 10.5, Windows XP SP2 et Ubuntu Linux 7.10 au quotidien je vais vous livrer mon expérience au niveau installation de logiciels. Pour le cas Linux je ne vais pas du tout rentrer dans les détails (.deb vs .rpm vs les autres types de paquet, ni parler de la compilation) mais je vais rester dans le cas général d'installation de logiciel par monsieur tout le monde (j'en suis presque un sous Linux). Idem pour les autres systèmes, je vais uniquement parler du cas le plus général.

Windows

Dans le cas général, on obtient un fichier exécutable .exe soit de la part d'un ami soit via le site officiel du logiciel ou un site comme Telecharger.com. Il suffit ensuite de double-cliquer sur le fichier, puis cliquer sur suivant, suivant, etc. jusqu'à la fin et c'est fini.

Avantanges

  • Assez facile d'installation.
  • Facile d'amener le programme d'installation chez un ami (il suffit de copier le .exe).

Inconvénients

  • Si on ne lit pas bien ce qu'il y a écrit quand on clique sur "Suivant" on se retrouve vite avec des logiciels en + que l'on a jamais souhaité.
  • On est obligé de suivre l'actualité des logiciels sur internet si on veut être au courant des mis à jour (sauf cas exceptionnel).
  • Lors de la désinstallation peu de logiciels proposent de supprimer aussi les fichiers de préférences associés.

Linux

Ici pas de site tel telecharger.com, du moins pas besoin. La très grande majorité des logiciels se trouve dans ce que l'on appelle des "dépôts". Pour installer un logiciel il suffit donc de lancer Synaptic et le système s'occupera donc de télécharger le logiciel souhaité ainsi que tous ceux nécessaires à son bon fonctionnement (si on accepte bien sûr).

Avantages

  • On est averti chaque jour (configurable) de la mise à jour de TOUS les logiciels installés via cette méthode des dépôts.
  • Si on clique sur un lien, sur un site web ou lors d'une conversation par messagerie instantanée, de type apt://nom_du_logiciel il s'installera automatiquement (si on l'autorise bien sûr).
  • Lors de la désinstallation, toujours via Synaptic, il est possible de supprimer entièrement le logiciel (y compris les fichiers de préférences).

Inconvénients

  • Si on n'a pas Internet pour installer des logiciels cela devient moins pratique. En effet nos potes sous Linux (si on en a ;)) n'ont pas forcément la même version de Linux (ça aide quand c'est le cas) et même si c'est le cas il faut télécharger le logiciel + ses dépendances, etc…
  • Je n'en voit pas d'autres mais corrigez moi si je me trompe :)

Mac OS X

On m'a longtemps venté le système d'installation de logiciel sous Mac... pourtant je n'ai rien trouvé d'exceptionnel. Mais ça s'explique sûrement par ma méconnaissance de ce système, si vous êtes utilisateur de Mac confirmé, corrigez moi.

En général il faut télécharger un fichier .dmg qui est une image disque. Cela signifie qu'un double-clic dessus la monte (elle apparaît sur le bureau comme quand on insère une clé USB, c'est pareil pour Mac OS X). Ensuite il faut faire glisser le fichier .app que contient cette image disque jusqu'au dossier /Applications/ du système d'exploitation. Il ne faut pas oublier d'éjecter (démonter) l'image disque une fois l'installation finie. Pour désinstaller l'application il faut faire glisser le fichier .app du dossier /Applications/ dans la corbeille

Avantages

  • Le fait de glisser/déposer le fichier .app dans le dossier Applications ne demande pas trop d'efforts ! C'est bien aussi que tout le logiciel soit contenu dans ce seul fichier.

Inconvénients

  • Devoir monter/démonter une image disque dont je ne comprends toujours pas l'utilité !
  • Pas de méthode vraiment universelle pour être avertit des mise à jours des logiciels installés.

Conclusion

Comme vous l'aurez sûrement compris, je préfère de loin la gestion de programmes sous Linux, même si au premier abord elle n'est pas très intuitive. En effet Synaptic propose de nombreux logiciels quand on cherche juste un nom, et il est difficile de comprendre au premier abord pourquoi l'installation d'un simple logiciel nécessite l'installation d'autres programmes (toutes les dépendances). De même si aucun dépôts n'existe pour le logiciel que l'on cherche (cas très rare), ça peut vite devenir mission impossible pour l'utilisateur lambda.

Mis à part ça, cet article montre peut-être ma méconnaissance du monde Mac et Linux. Sous Linux il y a sûrement beaucoup d'autres façons d'installer des logiciels, peut-être plus intuitive. Sous Windows Vista, il y peut-être une meilleure gestion de la suppression et de la mise à jours des logiciels mais je ne peux pas savoir sans avoir pu essayer.

dimanche 21 octobre 2007

Le pacte des gnous

Cette semaine on nous a montré en cours de systèmes d'exploitation une vidéo bien marrante. Cette vidéo - qui date de 2003 quand même - parle de la bataille entre Windows, Linux et Mac. Et comme elle est bourrée d'humour je ne peux résister à la partager avec vous :

Sinon, elle est disponible en téléchargement direct via LinuxFR.