Editeur de texte STEAD

### STEAD : Sympathetic Tk-based Editor for Average Dummies

### Sommaire

- Avertissement
- Télécharger
- Liste de Mailing
- Historique
- Ancien Lisez-moi

### Avertissement

Apres de nombreuses années de services, stead-0.62-alpha (11/08/00) est la dernière version qui assure 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 :

1. 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 ;
2. Réécrire les différents modes pour en assurer l'homogénéité tout en les simplifiant ;
3. Rédéfinir le comportement souhaité pour le chargement des différents fichiers de configuration (modes, utilisateur) d'une manière multiplateforme ;
4. Réintroduire une gestion des préférences ;
5. Reconstruire une aide (différente suivant le niveau d'utilisation/configuration/programmation de stead souhaité) ;
6. Rééciture de **toute** les anciennes fonctionnalités de stead-<old>.

Parallèlement (ou orthogonalement :-) à ces phases, plusieurs voies sont à assurer :

1. port de stead sous MacosX et sous Windoze,
2. proposition d'un mode Scilab acceptable,
3. rajout progressive de nouvelles fonctionnalités.

### Télécharger

préversion de stead2 accessible provisoirement en :
http://www.ensta.fr/~diam/stead2
Attention : pas de doc, pas de préférences et plus lent que l'ancien

### Liste de Mailing "stead@ensta.fr"

Liste de mailing pour Stead accessible en :
http://maillist.ensta.fr/mailman/listinfo/stead

### Historique

- 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 accessible provisoirement en
  http://www.ensta.fr/~diam/stead2
  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 :
  http://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 :

- fichier local : LICENCE_gpl.txt
- ou l'original : http://www.gnu.org/copyleft/gpl.html

    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 diam@ensta.fr

    à partir de :

    	- jedit editor of Jay Sekora, js@it.bu.edu
    	  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)
    		pete@cs.rice.edu
    	- David C. Black pour les ElectricAlias, black@mpd.tandem.com+
    	- Beth de David Svobodasvoboda@ece.cmu.edu
    	- TkMan de Tom Phelps, phelps@cs.Berkeley.edu
    	- TkMail de Paul Raines, raines@bohr.physics.upenn.edu
    	- mxedit de Brent Welch, 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 :

1. La dernière version "http://www.ensta.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,

2. 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. "http://www.ensta.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 :

- vous décompactez et installez ces deux répertoires obtenus où vous voulez (rien n'est à modifier dans ces deux arborescences, en principe :-)
- vous créez deux liens "stead" et "wish3.6" à un endroit accessible dans votre PATH , par exemple :

              /usr/local/bin/stead   -->  /usr/local/lib/stead-v0.XX-alpha/bin/stead
              /usr/local/bin/wish3.6 -->  /usr/local/lib/wish3.6/wish3.6

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`

### DERNIÈRE MINUTE : si vous avez des problèmes de téléchargement

Suite au changement au niveau du serveur http de l'ENSTA, il semble que le contenu des répertoire soit invisible de l'extérieur s'il n'y a pas de fichier index.html.
En attendant une solution plus propre, (config du fichier `.htaccess` ?) vous devez connaitre le nom exacte du fichier à récupérer.

En cas de problème/suggestion/remarque : n'hésiter pas à m'envoyer en mail (diam@ensta.fr)