STEAD :
Sympathetic Tk-based Editor for Average Dummies
ATTENTION (30/11/2012) :
STEAD N'EST PLUS MAINTENU DEPUIS PLUSIEURS ANNÉES !
Sommaire
Avertissement
Après de nombreuses années de services, stead-0.62-alpha (11/08/00) était
la dernière version qui assurait la compatibilité de vos scripts de
configuration (depuis 1993 !).
Cette version qui nécessitait wish3.6 est en cours de réécriture complète.
Cette réécriture passe par plusieurs phases :
- (fait) Réécriture du coeur de stead pour fournir des procédures
de niveau intermédiaire (de l'ordre d'un widget texte amélioré).
A titre d'exemple, il s'agit d'intégrer le mode de sélection
rectangulaire au meme titre que les autres modes de sélection
(car, word ou line), ou encore de développer une librairie de
style pour faciliter l'écriture de code de colorisation ;
- (fait) Refaire les binding du widget Entry (comme pour XText)
- (partiel) Réécrire les différents modes pour en assurer
l'homogénéité tout en les simplifiant ;
- (à faire) Rédéfinir le comportement souhaité pour le
chargement des différents fichiers de configuration (modes,
utilisateur) dxtk_labeledEntry'une manière multiplateforme ;
- (à faire) Réintroduire une gestion graphique des préférences ;
- (à faire) Reconstruire une aide (différente suivant le niveau
d'utilisation/configuration/programmation de stead souhaité) ;
- Rééciture de **toutes** les anciennes fonctionnalités de stead-<old>.
- (Fait) création d'un nouveau mode Ruby.
- (à faire ;-) réecriture de stead entièrement en ruby/Tk au lieu
de tcl/Tk !.
Parallèlement (ou orthogonalement :-) à ces phases, plusieurs voies sont
à assurer :
- (ne sera jamais fait) port complet de stead sous MacOSX et sous Windoze
(il s'agît ici de porter stead sous l'interface graphique native
de MacO, sachant que je
l'utilise tous les jours sous OSX avec l'interface X11).
- proposition d'un mode Scilab acceptable (fait ?),
- rajout progressive de nouvelles fonctionnalités (fait :-) .
Télécharger
Attention : plus de documentation à jour, ni de préférences graphiques !
Installation
Le shell TCL utilisé par stead est désormais tclkit au lieu
de wish. Tclkit est (encore !) plus simple à installer que wish
(exécutable mono-fichier précompilé pour de nombreuses plateformes
disponible sur le site de
tclkit-8.4.6.
Le fichier téléchargé doit être décompressé, nommé "tclkit" et accessible
dans votre variable PATH.
On peut cependant toujours imposer son propre shell sans modifier stead
grâce à la variable d'environnement STEAD_WISH (qu'on peut
par exemple positionner à "my-wish8.5-perso".
Historique
Un historique plus détaillé des versions récentes (avec les dates...)
est donné par le fichier texte
CHANGES
- v2.0a038 - (du 30/09/2006 au 08/03/2008)
Remarque
Cette version traine encore pas mal de problèmes de fontes dus à
l'utilisation de l'ancien système de gestion de fonte à la X11
(mais que supporté encore Tk, ouf !).
Je vais devoir faire un bon nettoyage du code pour exploiter le
nouveau système de gestion des fontes (en particulier pour stead
tourne proprement sous Macosx-10.5 (lalias éopard))
Cependant, il n'est pas exclus qu'un effet de bord soit que la
prochaine version nécessite l'utilisation de wish-8.5 minimum
(d'où cette mise à jour !)
Résumé des modif :
-
Encodage des caractères :
-
Création d'un menu "Config/Accents encoding" pour modifier
l'encodage des caractères sur disque.
Ne fait pas de conversion : pour cela voir le menu
"Format/Convert chars..."
Cette préférence n'est pas sauvegardée automatiquement : il faut utiliser le menu "Config/Save Current Preference"
-
Les commandes du menu "Format/convert Chars From/To" agissent
désormais toutes commes des filtres sur la sélection et non
plus sur le fichier complet. Il faut donc obligatoirment
sélectionner du texte pour qu'elle fassent effet.
-
Les modes :
-
création d'un nouveau mode pour Ruby
-
quelques amélioration mineur des mode php, latex, sh, c++
- MacOSX (Darwin): copier/couper/coller sous osX
(fichier xtext_procs.tcl et build.tcl (pour menus et binding))
- met de nouveau à jour le presse-papier Apple
- le press-papier interne à stead ( $xtext(buf,clip,data) ) est
toujours enregistré dans l'encoding "macRoman"
(mais pas la sélection X11)
- assure le transcodage entre "macRoman" et stead (unicode en interne)
- modif du lancement de stead : recherche automatique de l'interpréteur
(priorité :
- varible d'environnement STEAD_WISH
- un interpréteur nommé wish (quelque soit le chemin)
- un interpréteur nommé tclkit (quelque soit le chemin)
Correction d'un bug lors du lancement de stead sous windows sans passer
par un shell
- v2.0a037 - (du 31/01/2004 au 30/09/2006)
Résumé des modif :
- mode java :
- quelques mots clés supplémentaires reconnus : assert...
- coloriage en rouge sur fond jaune des instructions du style
myLabel: while (xxx) et du break associé
- mode javascript :en attendant la création d'un mode
javascript, les fichiers xx.js et
xx.javascript font passer
stead en mode java
- menu "Win" : (pour ceux qui ont un serveur X11 sécurisé)
ajout d'un élément de menu "Quit All !!" pour quitter toutes
les applis stead en même temps.
Rappel sur le menu "Win" : il permet de passer en premier
plan n'importe que autre fichier en cours d'édition
- mode fortran
-
ajout de quelques mots clés ( do, enddo, while, elseif) et
de quelques opérateurs booléens (.and, .or, .le., ...)
- mode php
- création d'un nouveau mode php (à partir du mode java)
- création d'un répertoire $X/lib/macros dans stead avec
juste un fichier README.fr et un exemple
- correction bug
- 29/01/05
correction d'un bug apparaissant sous wish85a2, lors de l'appel
au menu "Search/find...")
- 07/10/05 le menu "imprimer la sélection" ne fonctionnait pas
sous windoze (XP ou cygwin)
- 28/10/05
recherche remplacement : correction d'un bug empêchant le
fonctionnement de l'option "Post Tcl substitution"
lorsqu'on utilise la fenêtre de recherche (voir fichier CHANGES)
- divers :
- modif couleur par défaut de la sélection (active et
inactive)
- correction, modification et simplification du fichier exemple
de personnalisation de stead par l'utilisateur
(Menu "Config/edit sample user file")
Lire ce fichier pour la doc
- suppression du menu "Config/Reread user file".
La bonne solution pour
prendre en compte une modif de stead est de redémarrer
- v2.0a036 - (du 08/09/2003 au 31/01/2004)
Résumé des modif :
- v2.0a035 - (du 13/02/03 au 08/09/03)
Résumé des modif :
-
renommage de version 2.0a034 en 2.0a035 pour diffusion
-
refonte du mode shell (sh)
-
modif du menu File :
remplacement de : "Reset from Disk!!!" avec "Meta-Q"
par : "ReLoad from Disk!!!"
avec "Control-l" (= L minuscule)
-
menu Congig/font : ajout possibilté de changer la fonte du text
(pour pouvoir imposer "courier" sur certains système
d'inexploitation)
-
correction d'un bugs lors de l'affichage de l'info lors de la
sauvegarde ou l'ouverture d'un fichier de nom absolu long : un
nouveau stead était lancé rien que pour afficher cette info !
(merci Cyril)
-
modif des coupures de mot windows pour imposer le meme
comportement que sur les autres plateforme
-
mode claire : ajout de quelques colorations d'erreur
-
mode html : détection d'erreur fréquente pour du texte
contenant des opérateurs de comparaisons non transcodés en html
-
Amélioration de quelques binding et modif du menu "file /"
(lancement et/ou insertion de commande unix ou tcl...)
Proposition a discuter :
<Escape-xa> additionner les nombres sélectionnés (HORS MENU)
<Escape-xk> calculer la sélection (HORS MENU)
<Escape-xc> Eval selection as Tcl commands (HORS MENU)
<Escape-xs> or <Meta-L> Eval selection as Tcl commands
<Escape-xi> or <Meta-!> Insert Output of Unix command...
<Escape-xu> or <Meta-U> New stead with Unix command...
<Escape-xm> or <Meta-U> Rum make from current directory
<Escape-xt> or <Meta-y> Eval Tcl Command...
<Escape-xy> or <Meta-Y> Tcl Shell
-
ajout d'un raccourci <Meta-Control-l> pour recharger le fichier
éditer depuis le disque (en annulant donc les modif courantes).
L'ancien raccourci <Meta-Shift-Q> est conserver, mais il
n'est pas utilisable sous MacOSX qui propose de fermer la
session
- v2.0a033 - (version intermédiaire du 13/02/03)
Résumé des modif :
-
menu de navigation : affinage de l'espacement entre les lignes
-
Le label du nom de fichier (en bas de stead) est de nouveau
sélectionnable et copiable
-
mode claire : création de quelques alias dynamiques supplémentaires
- v2.0a032 - 27/11/02 au 04/02/03 (md)
Résumé des modif :
-
correction bug : l'indication de l'indice de l'insert (label en
bas à gauche de stead) n'était pas mis à jour lors de la
suppression de caractere (par exemple suite à un appui sue
-
début d'implémentation des bindings pour les entrées
(copié/collé/undo/...). Il reste un bug pas eclairci qui
empeche l'export du presse-papier des boites de dialogue vers
le reste de l'application (ou vers un xterm)
-
modification de comportement de la sélection dans les entrées :
la sélection des "entry" n'est plus exportée : ceci permet de
pré-séelectionner le texte dans la zone de
recherche/remplacement pour en simplifier l'effacement
-
boite de navigation : correction de l'espacement entre les lignes
pour prendre en compte les grosses tailles de caractères.
-
mode "gvt" : amélioration diverses
-
mode "tcl" : coloration en rose clair des tabulations (je n'aime pas
les tabulations :-) Ceci pourra devenir une préférence globale
- 27/11/02 (md) :
Correction d'un bug introduit il y 2 jours qui empèche le lancement
de stead en mode C !!!
- 16/09/2002 au 25/11/02 (md) :
Nombreuses modifs dont voici le résumé :
-
Modif importante de mode pour le langage "claire" (détection
d'erreur renforcée)
-
Création du mode "gvt". Ce mode me sert désormais de référence
pour la création d'un nouveau mode,
tant au niveau de l'organisation du fichier que de quelques
idées implémentées.
-
Correction d'un bug dans l'impression (merci Cyril :-)
et dans la recherch-remplacement (et re-merci Cyril :-)
-
Ajout ou modif de racourci pour l'évaluation ou le calcul de la
sélection
-
Amélioration de la coloration dynamique
-
Amélioration des alias dynamiques (voir fichier CHANGE)
- 09/09/2002 (md) :
-
Simplification du nouveau menu de transcodage des fontes
(Menus "Format/Convert Chars From" et "Format/Convert Chars From/To").
Le tout n'est toujours pas homogénéisé, mais c'est déja mieux !
-
correction bug impression, et modif de la commande d'impression par
défaut de "imprimer" en "lpr"
- 05/09/2002 (md) :
-
Le système de préférence n'étant pas encore refondu, je renomme
provisoirement le répertoire de sauvegarde des préférence de
l'utilisateur en ~/.stead.alpha au lieu de ~/.stead.
- 29/08/2002 (md) :
-
stead 2.0a026 tourne sous wish8.4b1 (je l'utilise sous MacOSX
avec XDarwin)
-
Ne remplace pas encore l'ancienne versions : pas de pannel de
préférence, pas de doc autre que le fichier CHANGE du menu
Help, pas de binding des "entry", ...
-
Mais tres nombreuses améliorations bien pratiques (colorisation, balance
rapide, macros supplémentaire, ...)
-
Modif d'un certain nombre de raccourcis claviers (wrapping des lignes,
mise en commentaire, changer la taille des fontes, ...)
-
relativement lent pour l'instant (nombreux fichiers sourcés au démarrage)
-
Port Windoze toujours pas finalisé
- 11/01/2002 (md) :
-
ancienne version de stead renommée en stead36
-
stead36 inclue wish36 (précompilée et sources)
-
version i386-linux recompilé pour utiliser la glibc (et non
plus la libc5 qui n'est plus livrée en standard sous linux)
(merci Damien Mercier)
-
rajout d'un version précompilé de wish36
- 03/12/2001 : préversion de stead2
rendue accessible
Attention : pas de doc, pas de préférences et plus lent que l'ancien
- 23/07/2001 : création d'une liste de mailing pour Stead
accessible en :
https://maillist.ensta.fr/mailman/listinfo/stead
- 22/07/2001 : Stead tourne dans MacOS-X avec le serveur X.
Je n'ai pas essayé dans Classic, mais cela fonctionnera aussi bien
que sous wondows. mais je n'en voi pas l'intéret maintenant qu'il y
a MacOS-X (:-)
- 30/07/2001 : Les phases 1, 2 et 3 ci-dessus bien avancées
Il reste des bogues de focus qui empechent la diffusion de cette version
- 30/07/2001 (stead ANCIENNE version):
Rajout de la plateforme sgi-irix pour l'interpréteur précompilé
wish3.6 (merci Damien Mercier)
Ancien "Lisez-moi" :
Tout ce qui suit est PERIME !
télechargement (download)
changement
license GPL
Qu'est-ce que STEAD :
Sympathetic Tk-based Editor for Average Dummies
est un éditeur de texte qui se veut :
- simple d'utilisation : menus, souris, raccourcis clavier, aide en
ligne,
- contextuel : menus adaptés au type de fichier édité (latex...),
- reconfigurable : écrit en langage TCL, il permet une personnalisation
facile.
Préambule
Dans le "Lisez-moi" qui suit, je corrige un peu l'entousiasme en rappelant :
- qu'il est en version Alpha,
(néammoins, c'est l'éditeur que j'utilise tous les jours depuis
1993 et j'en suis tres content :-)
- Il n'est pas aussi puissant que Alpha sur Macintosh dont il est
inspiré (the best editor à mon sens :-)
- Il n'est pas aussi puissant qu'Emacs mais beaucoup (:-) plus
convivial quand on n'a pas son permis de piloter.
- il nécessite l'ancien interpréteur wish3.6 (précompilation
multiplateforme fourni) (compatibilité avec wish8.3 en cours).
Sa refonte est en cours, mais cela prend du temps (perdu :-).
Principales caractéristiques : "facile, puissant, configurable"
Facile :
- Mutiplateforme UNIX (SUN3, SUN4, HP-UX, et sur PC sous UNIX BSD),
- aide en ligne,
- convention du type MACINTOSH pour la sélection et la plupart des
fonctionnalités (mais raccourcis emacs supportés),
- indentation ou mise en commentaire automatique de la sélection,
- affichage permanent de la ligne en cours,
- affichage permanent de l'état du fichier édité (sauvegardé ou non),
- accès facile à une ligne donnée à partir d'un nombre contenu dans
la sélection,
- impression d'une partie sélectionnée du fichier.
Puissant
- sélection rectangulaire (sélection/suppression/insertion de colonnes !),
(appui sur <Control-B3> ou <Meta-B1> pour sélectionner un rectangle)
- Passage de la sélection (rectangulaire ou non) par un filtre Unix
quelconque,
- recherche régulière et remplacement (globale ou ligne par ligne),
- multiple UNDO et REDO débraillable,
- gestion des modes (dont le mode LATEX), avec :
- le menu <Nom_du_mode> contenant des commandes facilitant la compilation,
- un menu <Templates> facilite l'édition de texte dans le mode choisi
et permet de Naviguer (circulairement) entre les différents champs !
- le menu <Navig> (dont le nom dépend du mode) permet de simplifier la
navigation dans le fichier en accédant directement à une déclaration
de fonction en C ; de "procedure" ou "function" en pascal ; de
"chapter", "section", "subsection", etc... en latex ; de "module" en
Verilog...
- colorisation des mots clés, des titres, des commentaires, ...
- alias dynamiques sur mot déja tapés,
- alias statiques sur dictionnaire, dépendant du mode et contenant des champs,
- possibilité de taper directement des procédures tcl au clavier.
- ra <regexpPattern> <subsPattern> (remplacement partout)
- rs <regexpPattern> <subsPattern> (remplacement dans la sélection)
- ins popo\n 55 (insère 55 ligne "popo")
Configurable
- personnalisation des couleurs, de la fonte, par panneau graphique,
(n'est plus à jour : doit ètre refondu d'une manière générique)
- personnalisable en langage TCL (rajouter menu, changement raccourci,
créer de nouvelles procédures...),
- configurer les modes à sa convenance,
- créer de nouveaux modes.
Exemples d'utilisation de STEAD :
- coller par impulsion sur le bouton 2 de la souris (convention X), mais
aussi scroller par glissé du bouton 2 de la souris (convention tk) !
- convertir des fins de ligne Macintosh en fin de ligne unix :
menu "Format/unix pipe..." tapez :
tr \015 \012,
ou via une commande de l'éditeur :
menu "File/Issue TCL Command...<Meta-T>" et taper(Replace All) :
ra \015 \012
(mais c'est aussi dans le menu "Format/End of lines...")
- rechercher des débuts de ligne : comme vi : ^ = début de ligne,
$ = fin de ligne,
- remplacer 1 ou plusieurs lignes vides par une seule en remplacant
"\n+" par "\n", (ou en tapant la commande TCL ra "\n+" "\n" )
- supprimer les pages 2 à 60 d'un fichier postscript que vous aviez
"presque" fini d'imprimer (voir doc. en ligne),
- insère 64 fois la ligne "popo" : Commande tcl
ins popo\n 64
de même que la commande :
for {set i 80} {$i <= 2} {incr i -2} {ins popo$i\n}
génère les lignes popo80, popo78, ...popo2
- Couper des colonnes, manipuler aisément des pseudos graphiques
(signatures...)
- voir d'un coup d'oeil l'ensemble des sections, sous-sections,... d'un
fichier Latex et s'y déplacer par un simple click souris !
- prévisualiser la sélection d'une formule LaTeX ou une figure sans
avoir à compiler tous les fichiers ...
Limitations
Sa principale limitation est la relative lenteur de certaines
fonctionnalités pour les gros fichiers ( > 300k) : l'éditeur est
entièrement interprété et pas forcément bien optimisé
(ou plutot pas du tout...).
STEAD n'est PAS (pour l'instant) multi buffer : si vous éditer deux fois
le même fichier et que vous sélectionner une partie du texte dans une
fenêtre, la même partie ne se trouve PAS sélectionnée dans l'autre fenêtre.
C'est à vous de gérer le risque d'incohérence.
Copyright et Cie (1993-2000 ENSTA)
La distribution de STEAD est sous
licence GPL :
STEAD (Sympathetic Tk-based Editor for Average Dummies)
Développé en 1993 à :
ENSTA/LEI/AMD
Ecole Nationale Supérieure de Techniques Avancées
Laboratoire d'Électronique Informatique
groupe Architectures de Machines Dédiées
par : Christian ARTIGUES
Maurice DIAMANTINI
à partir de :
- jedit editor of Jay Sekora,
ftp://shore.net/members/js/js.html
Et aussi des idées venant de :
- Alpha de Pete Keleher : l'éditeur LaTeX, entre autre
(shareware pour Macintosh)
- David C. Black pour les ElectricAlias, (...tandem.com)
- Beth de David Svoboda (...ece.cmu.edu)
- TkMan de Tom Phelps, (...cs.Berkeley.edu)
- TkMail de Paul Raines, (...bohr.physics.upenn.edu)
- mxedit de Brent Welch, (...parc.xerox.com)
Ainsi que la communauté du NewsGroup : comp.lang.tcl
Télechargement et installation
Tout ce qui est nécessaire à l'installation de STEAD est composé
des deux fichiers suivants :
- La dernière version
"https://perso.ensta-paris.fr/~diam/stead/distrib/stead-last.tgz"
de l'éditeur stead (de la forme
"stead-v0.XX-alpha.tgz" mis à jour régulièrement, et indépendant de
la plateforme)
que vous pouvez décompacter, renommer, déplacer comme vous
le souhaiter,
- L'interpréteur "wish3.6.tgz" précompilé pour plusieurs plateformes,
ainsi que ses sources.
Vous pouvez également le déplacer comme vous le souhaiter.
"https://perso.ensta-paris.fr/~diam/stead/distrib/wish3.6.tgz"
Le fichier wish3.6.tgz
contient les sources ainsi que
les exécutables de wish3.6 prets à l'emploi pour les plateformes
suivantes :
i386-linux (en fait tout X86 Intel et compagnie)
i386-netbsd
sparc-linux
sparc-sunos4.1.4
sparc-solaris2.5 (utilisable sous sparc-solaris2.7)
hppa1.1-hpux9.01
ppc-linux (linuxppcR5 en standard, linuxppcR4 sur demande)
sgi-irix (NEW 30/07/01 : merci Damien Mercier)
Vous pouvez toujours a posteriori
supprimer des binaires (ou les sources) dont vous n'avez pas besoin.
La version totale occupe (apres décompactage) de l'ordre de 5.3 Moctets
pour wish3.6 et 1.7 Moctets pour stead.
L'installation est alors réduite au minimum :
En principe, le reste se débrouille tout seul.
"wish3.6" étant figé, seul stead évolue au gré des versions.
Si votre plateforme ne fait pas partie de celles proposées ci-dessus,
Vous devez recompiler les sources de tk3.6 et tcl7.3 fournie avec la
distrib de wish (dans le sous-répertoire "wish3.6/archives/src", et
mettre à jour le script de lancement shell "wish3.6/wish3.6". (voir le
fichier INSTALL.readme dans le répertoire "wish3.6/" précompilé)
Nota : si l'interpréteur porte un autre nom que "wish3.6",
vous pouvez modifier d'en-tête du fichier
<stead_dir>/bin/stead