tuto scite

10
SciTE : l'éditeur indispensable Dans le monde des éditeurs de texte, le choix est plutôt difficile. Les utilisateurs de Microsoft Windows en savent quelque chose, puisqu'avec un Bloc-notes aphatique et un WordPad pathétique, on a du mal à imaginer que l'informatique a évoluée depuis les années 70... Heureusement il y a Scite, un éditeur de texte libre (évidemment), portable (qui fonctionne sous Windows et sous Linux, entre autres) et incroyablement performant tout en restant leger comme une plume ! Alors, vous qui cherchez depuis des années un éditeur à tout faire, supportant à la fois le HTML, le CSS, mais aussi le PHP, le C ou encore le C++, ça vous dirait d'entrer dans le XXI e siècle ? Présentation SciTE signifie Scintilla Text Editor . Scintilla est un composant d'édition de code source aux fonctionnalités impressionantes, utilisé dans de nombreux projets , comme Anjuta ou Notepad2. Ok, super, nous voila bien avancé ! Mais qu'est-ce qu'il permet de faire au juste ? Comme tous les éditeurs de texte, SciTE permet d'éditer n'importe quel fichier texte (code source, fichier de configuration ou simple fichier texte), dans n'importe quel encodage (il gère parfaitement l'UTF-8). Il offre de nombreuses fonctionnalités en terme d'édition pure (recherche et remplace à base de regexp, selection en colonnes, ...) et se débrouille à merveille comme éditeur de code (coloration syntaxique, intégration des API des langages permettant l'autocomplétion des fonctions, possibilité de « replier » du code, possibilité de compiler directement depuis l'éditeur, ...). En plus, il dispose d'onglets (tabs) et connait un nombre impressionnant de langages. Bref, le couteau suisse idéal pour tout programmeur ! Ca vous tente ? Alors passons à l'installation... Installation Les utilisateurs de Linux devraient trouver SciTE packagé dans leur distribution. Les utilisateurs de Windows pourront trouver sur la page de download plusieurs versions : Les Windows Executable ne demandent pas d'installation, mais n'offrent pas toutes les fonctionnalités. A utiliser lorsqu'on n'est pas sur son ordinateur (surtout le single file executable vraiment pratique). Les Windows Installers s'intègrent parfaitement à Windows (vous pourrez donc faire clic droit sur un fichier, puis « Editer dans SciTE »). Je vous conseille l'installeur de Bruce Dodson , light et très complet.

Upload: classestice

Post on 07-Jun-2015

1.539 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Tuto Scite

SciTE : l'éditeur indispensable

Dans le monde des éditeurs de texte, le choix est plutôt difficile. Les utilisateurs de Microsoft Windows ensavent quelque chose, puisqu'avec un Bloc-notes aphatique et un WordPad pathétique, on a du mal àimaginer que l'informatique a évoluée depuis les années 70... Heureusement il y a Scite, un éditeur de textelibre (évidemment), portable (qui fonctionne sous Windows et sous Linux, entre autres) et incroyablementperformant tout en restant leger comme une plume ! Alors, vous qui cherchez depuis des années unéditeur à tout faire, supportant à la fois le HTML, le CSS, mais aussi le PHP, le C ou encore le C++, çavous dirait d'entrer dans le XXIe siècle ?

Présentation

SciTE signifie Scintilla Text Editor. Scintilla est un composant d'édition de code source aux fonctionnalitésimpressionantes, utilisé dans de nombreux projets, comme Anjuta ou Notepad2. Ok, super, nous voila bienavancé ! Mais qu'est-ce qu'il permet de faire au juste ?

Comme tous les éditeurs de texte, SciTE permet d'éditer n'importe quel fichier texte (code source, fichier deconfiguration ou simple fichier texte), dans n'importe quel encodage (il gère parfaitement l'UTF-8). Il offrede nombreuses fonctionnalités en terme d'édition pure (recherche et remplace à base de regexp, selectionen colonnes, ...) et se débrouille à merveille comme éditeur de code (coloration syntaxique, intégration desAPI des langages permettant l'autocomplétion des fonctions, possibilité de « replier » du code, possibilitéde compiler directement depuis l'éditeur, ...). En plus, il dispose d'onglets (tabs) et connait un nombreimpressionnant de langages. Bref, le couteau suisse idéal pour tout programmeur ! Ca vous tente ? Alorspassons à l'installation...

Installation

Les utilisateurs de Linux devraient trouver SciTE packagé dans leur distribution. Les utilisateurs de Windowspourront trouver sur la page de download plusieurs versions :

Les Windows Executable ne demandent pas d'installation, mais n'offrent pas toutes les fonctionnalités.A utiliser lorsqu'on n'est pas sur son ordinateur (surtout le single file executable vraiment pratique).Les Windows Installers s'intègrent parfaitement à Windows (vous pourrez donc faire clic droit sur unfichier, puis « Editer dans SciTE »). Je vous conseille l'installeur de Bruce Dodson, light et trèscomplet.

Page 2: Tuto Scite

Utilisation

SciTE fonctionne comme n'importe quel éditeur de texte (ou presque). Il peut ouvrir plusieurs fichierssimultanément grâce à la gestion des onglets (tabs).

Les raccourcis claviers standards

Ce sont pratiquement tous les mêmes que dans la plupart des autres logiciels, aussi bien sous Windowsque sous Linux.

Combo ActionCtrl + O Ouvre un fichier.Ctrl + W Ferme le fichier en cours.Ctrl + N Nouveau fichier (nouvel onglet).Ctrl + S Enregistrer le fichier.Ctrl + Shift + S Enregistrer le fichier sous un autre nom.Ctrl + Tab Passer à l'onglet de droite.Ctrl + Shift + Tab Passer à l'onglet à gauche.Ctrl + F Rechercher (find).F3 Trouver le résultat suivant (après avoir commencé une recherche).Shift + F3 Trouver le résultat précédent (après avoir commencé une recherche).Ctrl + H Rechercher & Remplacer.Ctrl + G Aller à la ligne... (goto)Ctrl + C Copier.Ctrl + X Couper.Ctrl + V Coller.Ctrl + Z Annuler.Ctrl + Y Refaire (après une annulation ratée).Ctrl + A Sélectionner tout le contenu du fichier.Ctrl + P Imprimer.

Les raccourcis claviers d'édition

Combo ActionCtrl + Shift + A Afficher les espaces et les tabs.Ctrl + Shift + D Afficher les caractères End of Line (fin de ligne).Ctrl + U Transforme la sélection en minuscules.Ctrl + Shift + U Transforme la sélection en majuscules.Ctrl + L Coupe la ligne en coursCtrl + Shift + T Copie la ligne en coursCtrl + Shift + L Supprime la ligne en coursCtrl + D Duplique la ligne en cours.Ctrl + T Inverse la ligne en cours avec celle au dessus (transpose).

Ctrl + <- ou -> Se déplacer d'un mot entier vers la gauche ou vers la droite(attention, parfois il se trompe avec les accents).

Shift + une flèche directionnelle,PageUp, PageDown, Home ou End Se déplacer en sélectionnant.

Ctrl + Shift + <- ou -> Sélectionner un mot entier vers la gauche ou vers la droite.Ctrl + Backspace Supprime du début du mot jusqu'au curseurCtrl + Suppr Supprime du curseur jusqu'à la fin du motCtrl + Shift + Backspace Supprime du début de la ligne jusqu'au curseurCtrl + Shift + Suppr Supprime du curseur jusqu'à la fin de la ligne

Les raccourcis claviers spéciaux pour les codeurs

Page 3: Tuto Scite

Combo ActionTab Indente le bloc sélectionnéShift + Tab Dé-indente le bloc sélectionnéCtrl + E Déplace le curseur jusqu'à la parenthèse/accolade ouvrante ou fermante.Ctrl + Shift + E Sélectionne tout ce qui est contenu entre 2 parenthèses/accolades.

Ctrl + Q

Commente/Décommente la/les ligne(s) en cours en mode Block, selon le langage.Exemple en C++ :

//~ string truc("PONG :" + c.getWhat());//~ s.send(truc);

Ctrl + Shift + B

Commente les lignes selectionnées en mode Box. Exemple en C++ :

/* string truc("PONG :" + c.getWhat()); * s.send(truc); */

Ctrl + Shift + QCommente les lignes selectionnées en mode Stream. Exemple en C++ :

/* string truc("PONG :" + c.getWhat());s.send(truc); */

Ctrl + I

Propose des choix d'autocomplétion pour le mot en cours (à condition que l'API dulangage soit installée, voir comment faire). Exemple, taper str puis Ctrl + i en Cdonnera :

Ctrl + Shift + Espace

Réaffiche la Calltip de la fonction en cours (à condition que l'API du langage soitinstallée, voir comment faire) :

F7 Lance la compilation du fichier dans l'output pane (voir ci-dessous)Ctrl + F7 Lance la construction du projet auquel appartient le fichier (voir ci-dessous)F5 Lance le binaire compilé ou le logiciel permettant de visualiser le fichier (navigateur

web en cas de fichier HTML par exemple)

Voici les raccourcis clavier dont je me sert régulièrement. Mais il existe des tas d'autres, et si vous netrouvez pas votre bonheur ici, essayer de regarder dans la doc, rubrique Keyboard commands.

Enfin, pour les gens vraiment très exigeants, sachez qu'il est possible de définir ses propres raccourcisclavier, via la propriété user.shortcuts (voir ci-après pour la configuration de SciTE). N'en ayant jamais eubesoin, je ne peux malheureusement pas en dire plus là dessous. Je vous conseille donc d'aller lire la docde SciTE si cette fonctionnalité vous interresse.

Page 4: Tuto Scite

Configuration

SciTE a un défaut : il n'offre pas d'interface pour paramétrer les options. Tout se fait via l'édition desfichiers de configuration. Même si la syntaxe n'est pas difficile, c'est un peu contraignant, voire parfoisrebutant pour certains. Mais ne vous inquiétez, voici une rapide présentation du fonctionnement de l'engin,et vous allez voir, c'est très simple !

Il y a 3 niveaux de fichiers : Global, User et Local. Local est prioritaire sur User qui est prioritaire sur Global.Par exemple, si une option est présente à la fois dans Global et dans User, c'est la valeur de User qui seraretenue.

Les fichiers sont accessibles via le menu Options, puis Open Global Options File ou Open User Options File(ou encore Open Local Options File).

Le fichier Global définit les options globales par défaut de SciTE (c'est à dire, celles qui s'appliquerontà tous les utilisateurs). Sous Linux, le Global est en général quelque part dans /usr/share/scite/ etn'est pas accessible par l'utilisateur (seulement le root). Il vaut mieux laisser ce fichier intact, d'abordparcequ'il vous permettra de retrouver facilement les options par défaut en cas de soucis, maissurtout parcequ'il sera écrasé à chaque mise à jour de SciTE, et donc il faudra refaire toutes lesmodifs...Le fichier User est donc celui qu'il vous faut pour définir toutes les options que vous voulez. Sous Linx,il est dans ~/.SciTEUser.properties alors que sous Windows il se balade quelque part dans le profil.Il est vide par défaut, alors on peut soit le remplir au fur et à mesure, soit recopier le fichier globaldedans et le modifier après ; c'est une question de goût.Le fichier Local sert à définir des paramètres particuliers pour un dossier. Il doit se trouver dans lemême dossier que les fichiers auxquels on veut appliquer ces paramètres (par exemple : moded'indentation, wrap des lignes, options du compilateur, etc.).

Pour connaitre tous les détails des fichiers de configuration de SciTE, vous pouvez lire la doc, rubriqueProperties files.

Dans la suite de cet article, toutes les options seront à rajouter au User Options File.

L'output pane, ou comment transformer SciTE en IDE

Vous avez peut-être remarqué une petite fenêtre, sur la gauche ou en bas de la fenêtre d'édition ? C'estl'output pane, là où sont affichés les résultats de la compilation du fichier ou du projet...

Et oui, car SciTE peut executer la compilation du fichier (compile) ou de tout le projet (build), et lancer lerésultat obtenu (go). Pour cela, il faut le configurer grâce aux propriétés command.go, command.build etcommand.compile.

Voici par exemple ma configuration personnalisée pour les fichiers C/C++ (sous Linux) :

command.compile.*.c=gcc -Wall $(FileNameExt) -o $(FileName)command.compile.*.cpp=g++ -Wall $(FileNameExt) -o $(FileName)

command.build.*.c=makecommand.build.*.cpp=make

command.go.*.c=$(FileName)command.go.*.cpp=$(FileName)command.go.needs.*.c=gcc -Wall $(FileNameExt) -o $(FileName)

Lorsque des erreurs s'affichent dans l'output pane, un double clic sur la ligne vous amenera directement àla ligne concernée, comme sur le screenshot ci-dessous :

Page 5: Tuto Scite

Ce système est très très (très) largement configurable, notamment via l'utilisation des fichiers deconfiguration Local Options File, qui permettent de définir des paramètres de compilation différents selon ledossier. Je conseille à ceux qui sont interressés par ces fonctionnalités d'aller lire la doc de SciTE, rubriqueStandard Editing et Defined variables in properties files.

Trucs, astuces et options utiles

SciTE regorge d'options utiles, mais souvent (trop) bien cachées. Pour vous donner une idée, j'utilise SciTEdepuis 3 ans bientôt, et j'en découvre encore regulièrement ! Voici un condensé des options que j'utilise.

Sélection en colonnes

Sélectionner du texte en appuyant sur Ctrl sous Linux ou Alt sous Windows.

Pour ceux qui ne connaissent pas, la sélection en colonnes ça permet de faire selectionner du texte commeça :

Tabs

La barre des onglets (tabbar) n'est pas toujours activée par défaut, ou alors le nombre de fichiers que l'onpeut ouvrir en même temps (buffers) est limité à 1. Voici les propriétés utiles :

tabbar.visible=1tabbar.hide.one=0tabbar.multiline=1buffers=100

Pour afficher le numéro du fichier dans la barre de titre ([2 of 4] par exemple), il faut utiliser la propriété :

title.show.buffers=1

Page 6: Tuto Scite

Numéros de lignes

C'est pas toujours activé par défaut, alors il faut faire :

line.margin.visible=1line.margin.width=4

Fonts

Sous Linux, elles sont très très moches par défaut. En plus, SciTE utilise des fonts qui ne sont pasmonospace (c'est à dire que chaque caractère n'utilise pas exactement le même nombre de pixel - cas de laplupart des polices destinées à la rédaction de documents), ce qui est une très mauvaise idée pour lecodage. Personnellement, je remplace donc toutes les fonts par Fixed en taille 10 ou 12. Voici mesparamètres :

if PLAT_GTK font.base=font:fixed,size:12 font.small=font:fixed,size:10 font.comment=font:fixed,size:12 font.code.comment.box=$(font.comment) font.code.comment.line=$(font.comment) font.code.comment.doc=$(font.comment) font.text=font:fixed,size:12 font.text.comment=font:fixed,size:12 font.embedded.base=font:fixed,size:12 font.embedded.comment=font:fixed,size:12 font.monospace=font:fixed,size:12 font.vbs=font:Lucida Sans Unicode,size:10

Fermer automatiquement les tags XML et (X)HTML

Par exemple, je tape <p> et ça donne <p></p> avec le curseur entre les deux balises.

xml.auto.close.tags=1

Remplacer dans tous les fichiers ouverts

D'après la documentation de SciTE, il faudrait ajouter cette propriété :

find.replace.advanced=1

Elle ferait apparaitre un bouton Replace in Buffers qui permettrait de remplacer dans tous les fichiersouverts. Malheureusement, je n'ai encore jamais réussi à faire apparaître ce bouton... Esperons que ce bugsera rapidement corrigé !

Les boutons Home et End utilisent les lignes visuelles au lieu des lignes logiques

Lorsqu'on active l'option Wrap (via le menu Options ou via la propriété wrap=1), les lignes trop longuess'arrettent au bord de l'écran et reviennent à la ligne, au lieu de continuer (et d'obliger l'utilisateur à défilerhorizontalement). La ligne trop longue en question est appellé ligne « logique » et forme alors plusieurslignes dites « virtuelles », car il n'y a pas physiquement de caractère de fin de ligne : c'est juste un effetvisuel. Un moyen de s'en rendre compte est de constater que ces lignes virtuelles ne sont pas numérotées,comme le montre le screenshot ci-dessous :

Page 7: Tuto Scite

Par défaut, les touches Home et End déplacent le curseur au début et à la fin de la ligne logique. Pourchanger se comportement afin qu'elles déplacent le curseur sur la ligne visuelle, c'est la propriété :

wrap.aware.home.end.keys=1

Configurer l'aspect du folding

Le folding permet de « replier » des morceaux de codes, par exemple le corps d'une fonction ou bien uneligne d'un tableau HTML entre 2 balises <tr>.

Pour cela, il suffit de cliquer sur les icones qui apparaissent dans la marge spéciale (ou utiliser le raccourciclavier Ctrl + * (du pavé numérique). Au cas où ça ne serait pas activé par défaut, il faut rajouter lesoptions :

fold=1fold.compact=0fold.flags=16fold.symbols=1fold.comment=1fold.preprocessor=1fold.html=1

Le paramètre fold.symbols permet de définir l'aspect des icones de folding. Voici les différents valeurs :

fold.symbols=0

Page 8: Tuto Scite

fold.symbols=1

fold.symbols=2

fold.symbols=3 (mon préféré :)

Utiliser les icones Gnome pour la toolbar (parceque celles par défaut sont vraiment moches)

Uniquement sous Linux.

toolbar.usestockicons=1

Repère visuel à 80 caractères

Page 9: Tuto Scite

edge.column=80edge.mode=1edge.colour=#C0DCC0

Note : Un bug sur ma version (1.66) fait que la ligne est tracée par dessus le texte. C'est assezdésagréable.

Intégration des API

Les fichiers API peuvent être téléchargé sur le site officiel, ou créé par des scripts, mais là il faut aller lire ladoc parceque j'ai jamais essayé. Ils permettent l'autocomplétion des fonctions, ainsi que l'affichage descalltips indiquant les paramètres et la description des fonctions.

Dans les propriétés, il faut indiquer le chemin des fichiers. Exemple :

api.*.c=/usr/share/scite/c.apiapi.*.cpp=/usr/share/scite/c.apiapi.*.php=/usr/share/scite/php.api

Indentation

Comme je l'expliquais dans l'article sur les coding style, il est préferable d'utiliser des tabulations pourl'indentation, et d'en choisir la taille. Avec SciTE, ça se configure comme ça (exemple avec des tabs qui font8 caractères) :

tabsize=8indent.size=8use.tabs=1

Ouvrir les fichiers HTML dans Firefox

Par défaut, lorsqu'on fait Go (touche F5) sur un fichier HTML, SciTE ouvre Internet Explorer, ou Netscapesous Linux. Pour ouvrir le fichier dans une nouvelle tab d'un Firefox déjà lancé, il suffit d'ajouter :

command.go.*.html=firefox -remote "openurl(file://$(FilePath),new-tab)"

Utiliser SciTE pour l'UTF-8

SciTE est capable de détecter l'encodage du fichier en se basant sur les commentaires en début de fichier.Par exemple, un fichier XML débutant par :

<?xml version='1.0' encoding='utf-8'?>

ou n'importe quel fichier source débutant par :

# -*- coding: utf-8 -*-

sera reconnu.

Page 10: Tuto Scite

Si pour une raison ou pour une autre ce n'est pas le cas, vous pouvez changer l'encodage du fichier encours via le menu File, Encoding.

UTF-8 encodera le fichier avec un caractère spécial au début, invisible tant qu'on reste avec SciTE,mais qui risque de géner si le fichier est déstiné à être utilisé avec d'autres éditeurs qui ne le gèrepas.UTF-8 Cookie encodera le fichier sans ce caractère spécial, mais en contrepartie, il n'y aura aucunmoyen de détecter qu'il est en UTF-8. Il faudra préciser à chaque ouverture que ce fichier est en UTF-8