###########################################################################
# 
# Cette doc est perimee !
# 
###########################################################################

Sommaire :
---------

    1  - Prsentation Gnrale  de l'Editeur STEAD        
    2  - Fonctionnement de l'diteur
    2.1  - Le lancement de l'diteur 
    2.2  - Contenu des menus
    2.3  - Le clavier
    2.4  - La souris
    2.5  - La fentre d'dition
    3  - Manuel d'Utilisation
    3.1  - La slection et la slection rectangulaire
    3.2  - Le slecteur de fichier
    3.3  - L'impression
    3.4  - L'annulation des commandes
    3.5  - Les prferences utilisateur
    3.6  - La recherche/remplacement
    3.7  - La navigation dans le texte
    3.8  - La gestion de la balance
    3.9  - Les filtres
    3.10  - Les abrviations dynamiques
    3.11  - Les alias lectriques
    3.12  - Utilisation des modes
    4  - Aller plus loin : personnalisation et programmation en Tcl
    4.1  - Configurer son diteur avec le fichier steadrc
    4.2  - Fonctionnement des modes
    4.3  - le menu admin
    5  - Manuel d'installation sur un nouveau site

1 - Prsentation Gnrale  de l'Editeur STEAD        

###########################################################################
###########################################################################
###########################################################################
                                            
                                                                        
        STEAD : mot anglais signifiant : "tre fort utile  quelqu'un"  


"Sympathetic Tk-based Editor for Average Dummies" est un diteur de texte
crit  l'aide du langage interprt TCL (Tool Command Langage) et son 
extension Xwindow TK (Tool Kit).  

Son objet : tre  la fois :
  - simple d'utilisation, bas sur les menus et la souris, 
  - suffisamment puissant pour grer les modes, 
  - configurable en TCL pour l'utilisateur exigent.

Son installation ncessite tcl version 7.3, tk version 3.6.

---------------------------------------------------------------------------
Quelques caractristiques :
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Voir Menu Help/stead-lisez-moi

###########################################################################
###########################################################################
###########################################################################

2 - Fonctionnement de l'diteur

###########################################################################
###########################################################################
###########################################################################


#################################
#################################
2.1 - Le lancement de l'diteur 
#################################
#################################
  
 
2.1.1 - lancement simple (nouveau fichier)
 
  unix> stead
  lance l'diteur sans fichier (vide).
 
 
2.1.2 - ouverture de fichiers
 
  unix> stead <nom_de_fichier> [<nom_de_fichier> ...]
  ouvre les fichier spcifis  
  
2.1.3 - Options dont on dispose :
   
  unix> stead -mode <nom-de-mode> [<nom_de_fichier>] [<nom_de_fichier>] ...
  ouvre le (ou les) fichiers choisis dans le mode spcifi
 
  unix> stead -text <chane-de-caractres>
  ouvre l'diteur avec la chaine de caractre.
  Aucun nom de fichier ne devra tre spcifi.
  ATTENTION : se limiter a des petites chaines infrieures  50 K.
  
  unix> stead -command <Commande  Tcl> [<nom_de_fichier>] [<nom_de_fichier>]  
  ouvre le (ou les) fichiers choisis et excute la commande Tcl dans chaque
  fichier ou diteur vide ouvert.
  
  
#######################
#######################
2.2 - Contenu des menus
#######################
#######################
  

#################
2.2.1 - Menu File
#################
         
  ( Gestion des fichiers, lancement des diteurs) 

  -----------------------------------------------------------------------
  Open...                                                          Meta-o

  Ouvre dans un nouvel diteur un fichier choisi dans le "slecteur de 
  fichier", boite de dialogue ouverte automatiquement  cette occasion. 

  -----------------------------------------------------------------------   
  Load...                                                          Meta-L

  Ouvre dans le mme diteur un fichier choisi dans le "slecteur de 
  fichier", boite de dialogue ouverte automatiquement  cette occasion.
  Demande confirmation si le fichier courant n'est pas sauvegard.

  ------------------------------------------------------------------------
  Open Same File                                                    Meta-O
                                                     
  Ouvre le mme fichier dans un autre diteur. Toutefois les modifications
  effectues dans un diteur ne sont pas reportes dans l'autre.

  ------------------------------------------------------------------------
  New                                                               Meta-n

  Ouvre un diteur vide 


  ------------------------------------------------------------------------
  Save                                                              Meta-s
  
  Sauvegarde le fichier. Un nom de fichier est demand si le fichier est 
  sans titre. Affiche le nombre de caractres et de lignes du fichier.
  Remarque : On ne peut plus annuler une commande antrieure 
  une sauvegarde.

  ------------------------------------------------------------------------
  Save As...                                                        Meta-S

  Sauvegarde le fichier sous un nom  choisir dans le slecteur de fichier
  

  ------------------------------------------------------------------------
  Save Selection As...
 
  Sauvegarde le contenu de la selection sous un nom a choisir dans un 
  selecteur de fichier. 

  ------------------------------------------------------------------------
  Print...                                                          Meta-p
 
  Donne un prompt avec la commande d' impression par dfaut qu'il est
  alors possible de modifier.
  %F remplace le nom du fichier  imprimer dans la commande d'impression.

  ------------------------------------------------------------------------
  Print Selection 
  
  Imprime le contenu de la selection. Fonctionne comme la commande 
  precedente. 

  ------------------------------------------------------------------------
  Insert File...                                                    Meta-I
  
  Insre au point d'insertion ou  la place de la slection le fichier 
   choisir dans un "slecteur". 

  ------------------------------------------------------------------------
  Insert Output of Unix Command*                                    Meta-! 
  
  Insre au point d'insertion ou  la place de la slection le rsultat de
  la commande UNIX entre par l'utilisateur dans un prompt. 

  ------------------------------------------------------------------------
  Reset to Last Save                                                Meta-Q

  Recharge le fichier courant en ignorant les modifications.
  Demande confirmation.  

  ------------------------------------------------------------------------
  Reset to Last save & Reload TE

  Quitte et relance l'editeur en rechargeant le fichier en ignorant les 
  modifications. 
  Demande confirmation.   

  ------------------------------------------------------------------------
  File Informations
  
  Fournit des informations sur le fichier courant 
  (date de dernire modification, taille, etc...)

  ------------------------------------------------------------------------
  Save then Quit 

  sauvegarde le fichier et quitte l'diteur 

  ------------------------------------------------------------------------
  Quit                                                              Meta-q

  quitte l'diteur. Demande une sauvegarde du fichier si besoin est . 


#################
2.2.2 - Menu Edit
#################

  Gestion de l'dition, slection, undo


  ------------------------------------------------------------------------
  Cut*                                                              Meta-x

  Coupe la slection (qu'elle soit rectangulaire ou non) et la place dans 
  le buffer. Ne fonctionne que si la slection est dans l'diteur courant
  Il y a un buffer par fichier dit.
   
  ------------------------------------------------------------------------
  Copy                                                              Meta-c

  Copie la slection sans la couper (qu'elle soit rectangulaire 
  ou non) et la place dans le buffer
  
  ------------------------------------------------------------------------
  Paste*                                                            Meta-v 
  
  Colle le contenu du buffer (de faon rectangulaire ou non) au point 
  d'insertion ou  la place de la slection 
                  
  ------------------------------------------------------------------------
  Duplicate Sel*                                        Button-2 et Meta-d

  Duplique la slection 
  - s'il n'y a pas de slection dans le texte, la slection d'une aure
  application est duplique  au point d'insertion. S'il n'y a de slection 
  dans aucune autre application, c'est l'ancienne valeur de la  slection 
  qui est restitue.
  - s'il y a une slection dans le texte, elle est duplique juste avant 
  sa position. 
                
  ------------------------------------------------------------------------
  Select All                                                        Meta-a
  
  Slectionne le texte entier
                
  ------------------------------------------------------------------------
  Undo                                                              Meta-z 
  
  Restaure l'tat du texte avant la dernire commande annulable.  La 
  restauration porte sur le texte et sur son tat (slection, marques, 
  tags). Le nombre de commandes annulables successivement est dfini par 
  la  prfrence utilisateur "undolevels"
  
  ------------------------------------------------------------------------
  Redo                                                              Meta-Z
  
  Annule le dernier undo effectu
  
  
  ------------------------------------------------------------------------
  Sous menu Undo Config (configuration du undo) :
  ------------------------------------------------------------------------
  Checkpoint
  
  Permet de mmorise l'tat du fichier. La commande "undo" permet de 
  restaurer cet tat.  On peut utiliser cette commande pour sauvegarder 
  l'tat de la slection  un moment donn
  
  ------------------------------------------------------------------------
  Disable/Enable Undoing 
  Empche ou restitue la sauvegarde de points d'annulation.  Utile si la
  sauvegarde depoints d'annulation ralentit trop l'dition.
  
  
  ------------------------------------------------------------------------
  Clear Undo  Memory
  Efface la mmoire des points d'annulation. On ne pourra pas, aprs cette 
  commande, revenir  un tat prcdent. Cette commande est automatiquement 
  invoque lorsqu'on sauve le fichier. Cette  caractristique est dfinie 
  par la prfrence utilisateur "clear_undo".
  ------------------------------------------------------------------------
  

###################
2.2.3 - Menu Search
###################

  recherche, remplacement, balance, position du curseur

  ------------------------------------------------------------------------
  Find...                                                           Meta-f
  
  Affiche la bote de dialogue de "recherche/remplacement" qui comporte 
  une entre intitule "Search for" permettant d'entrer la chane  
  rechercher, une entre intitule "Replace With" permettant d'entrer la 
  chaine de remplacement. Les options de recherche en arriere (backward),
  prise en compte des majuscules (case-sensitive), la recherche rgulire
  (regexp-find) dans tout le fichier ou ligne par ligne (regexp-by-line)
  sont dfinies par des boutons de slection.
  Le bouton "Search" lance la recherche, "Replace" remplace la chane 
  trouve par une commande Search,  "Replace in selection" remplace dans 
  toute la slection, "Replace all" dans tout le fichier, 
  "replace then search again" recherche le prochain lment aprs un 
  remplacement.  "Done" efface la fentre en conservant les options et les 
  chanes de recherche/remplacement. Pour supprimmer une chaine, entrer une 
  chane vide comme chane de remplacement.        
                   
                 
  ------------------------------------------------------------------------
  Enter Sel                                                         Meta-e
  
  Entre la chane slectionne (Si elle existe) dans l'entre de 
  recherche, que la fentre de recherche soit affiche ou non

  ------------------------------------------------------------------------
  Search Forward                                                    Meta-g

  Lance la recherche de la chaine de recherche du point d'insertion vers la 
  fin du fichier sans afficher la fentre de recherche.

  ------------------------------------------------------------------------
  Search Backward                                                   Meta-i
  
  Lance la recherche du point d'insertion vers le dbut du fichier sans 
  afficher la fentre de recherche. NOTE : il est impossible de rechercher
  en arrire une chaine rgulire.


  ------------------------------------------------------------------------
  Search Sel Forward                                             Control-g
  
  Lance la recherche de la chane selectionne dans le sens point 
  d'insertion-fin du fichier. Ignore et n'affecte pas la chane de 
  recherche de la fentre de recherche.
                
  ------------------------------------------------------------------------
  Search Sel Backward                                            Control-i
  
  Lance la recherche de la chane selectionne dans le sens point
  d'insertion-dbut du fichier. Ignore et n'affecte pas la chane de 
  recherche de la fentre de recherche.

  ------------------------------------------------------------------------
  Replace*                                                          Meta-u
  
  Remplace la slection par la chane de remplacement sans afficher le
  fentre de recherche

  ------------------------------------------------------------------------
  Replace Then Search Again*                                        Meta-h

  Remplace la slection par la chane de recherche et lance une nouvelle 
  recherche sans afficher la fentre de recherche.
 
  
  ------------------------------------------------------------------------
  Replace In Sel*          
  
  Remplace les chanes trouves dans la slection par la chaine de 
  remplacement sans afficher la fentre de recherche.
  
  ------------------------------------------------------------------------
  Replace All*  
  
  Remplace toutes les chanes trouves dans le fichier par la chaine de 
  remplacement sans afficher la fentre de recherche.

  ------------------------------------------------------------------------
  Balance                                                           Meta-b
  
  Cherche les plus proches lments de balance englobant le point 
  d'insertion ou la slection. Les lments de balance sont les accolades, 
  les parenthses ou les crochets. Slectionne l'intrieur, une fois que 
  l'lment de balance a t trouv.
  

  ------------------------------------------------------------------------
  Set Emacs Mark                                                 Control-m

  Selon la convention emacs, cre une marque pour mmoriser la position
  du point d'insertion.

  ------------------------------------------------------------------------
  Jump to Emacs Mark                                             Control-M
  
  Positionne le point d'insertion sur la dernire marque cre.
  
  ------------------------------------------------------------------------
  Exchange Mark and Insert Point                    <Control-x><Control-x>
  
  Positionne le point d'insertion sur la marque dernire marque cre et
  mmorise l'ancienne position dans la marque "emacs".  
  
  ------------------------------------------------------------------------
  Go To Line                              Bouton "ligne/colonne" et Meta-j
  
  Positionne le point d'insertion  la ligne dfinie par le premier chiffre
  trouv dans la slection. Affiche une fentre d'entre s'il n'y en a pas.
  La ligne trouve par le go-to-line est colore quelques instants
  ------------------------------------------------------------------------
                


###################
2.2.4 - Menu Format
###################

prfixe, indentation, filtres appliqus  la slection

  ------------------------------------------------------------------------
  Insert Prefix Before Indent*                                     Meta  -
  
  Insre le prfixe courant (prfrence utilisateur prefix voir
  Set Prefix) en dbut des lignes situes dans la slection s'il y en a une,
  au point d'insertion sinon
  
  ------------------------------------------------------------------------
  Insert Prefix After Indent*                               Meta-Control -

  Insre le prfixe (prfrence utilisateur prefix voir Set Prefix) aprs 
  l'indentation des lignes situes dans la slection s'il y en a une,
  au point d'insertion sinon.
  
  ------------------------------------------------------------------------
  Remove Prefix*                                              Meta-Shift-_
  
  Supprime les prfixes (prfrence utilisateur prefix voir Set Prefix) de
  la slection s'il y en a une.
  

  ------------------------------------------------------------------------
  Set Prefix...                                                  Control -
  
  Affiche une fentre pour entrer le prfixe courant (prfrence 
  utilisateur prefix).


  ------------------------------------------------------------------------
  Indent Right*                                                     Meta-]
  
  Indente la slection si elle existe, la ligne courante sinon, du nombre 
  d'espaces dfini par la chane courante d'indentation (prfrence 
  utilisateur "indent_string", voir Set Indent Spaces). Avant d'indenter 
  le texte, STEAD tend la slection courante au dbut de la premire 
  ligne slectione et  la fin de la dernire ligne slectionne.
  
  
  ------------------------------------------------------------------------
  Indent Left*                                                      Meta-[
  
  "Dsindente" la slection si elle existe, la ligne courante sinon, au 
  plus du nombre d'espaces dfini par la chane courante d'indentation 
  (prfrence utilisateur "indent_string", vois Set Indent Spaces).
  Avant la dsindentation, STEAD tend la slection courante au dbut de
  la premire ligne et  la fin de la dernire.
  
  ------------------------------------------------------------------------
  Indent One Space Right*                                           Meta-}
  
  Indente la slection si elle existe, la ligne courante sinon, d'un 
  espace. Possde les mmes caractristiques que "Indent Right".
  
  ------------------------------------------------------------------------
  Indent One Space Left*                                            Meta-{
  
  Dsindente la slection si elle existe, la ligne courante sinon, d'un 
  espace.  Possde les mmes caractristiques que "Indent Left".
  
  ------------------------------------------------------------------------
  Set Indent Spaces...
  
  Affiche une fentre pour modifier la chaine courante d'indentation
  Prfrence utilisateur "indent_string".
  
  
  ------------------------------------------------------------------------
  Fill Sel*                                                         Meta-= 
  
  formate la slection (ne fait rien si pas de slection)
  pour l'instant on utilise la commande UNIX fmt.
  
  
  ------------------------------------------------------------------------
  Pipe Through* Unix Command                                        Meta-|
  
  Affiche une fentre pour entrer un filtre UNIX appliqu  la slection.
  

  ------------------------------------------------------------------------
  Sous-menu Case :
  ------------------------------------------------------------------------

  ------------------------------------------------------------------------
  CASE*                                                             Meta-K
  
  Met la slection en majuscule 
                 
  ------------------------------------------------------------------------
  case*                                                             Meta-k
  
  Met la slection en minuscules

  ------------------------------------------------------------------------
  Toggle Case*  
  
  Inverse les minuscules et les majuscules dans la slection


  ------------------------------------------------------------------------
  Sous Menu Sort :
  ------------------------------------------------------------------------


  ------------------------------------------------------------------------
  Sort by ASCII Sequence*      
  
  Tri ASCII (?) de la slection (commande UNIx sort)
 
  ------------------------------------------------------------------------
  Sort Numerically*
  
  Tri numrique de la slection (commande UNIX sort -n)

  ------------------------------------------------------------------------
  Sort Alphabetically* 
  
  Tri alphabtiquement la slection (commande UNIX sort - if)

  ------------------------------------------------------------------------
  Sous-menu wrap selection :
  ------------------------------------------------------------------------

  ------------------------------------------------------------------------
  sel -> "sel"                                                   Control-"
  
  encadre la slection par des guillemets

  ------------------------------------------------------------------------
  sel -> [sel]                                                   Control-]
  
  encadre la slection par des crochets

  ------------------------------------------------------------------------
  sel -> (sel)                                                   Control-)
  
  encadre la slection par des parenthses
                                    
  ------------------------------------------------------------------------
  sel -> {sel}                                                   Control-}
  
  encadre la slection par des accolades
  ------------------------------------------------------------------------

###################
2.2.5 - Menu Config
###################

prfrences utilisateurs, fichiers de configuration, modes

  ------------------------------------------------------------------------
  Graphic Preferences Editor...    

  affiche le panneau de configuration pour les prfrences utilisateur 
  concernant l'diteur.
  - Le bouton "Cancel" permet d'annuler les modifications avat de
  dtruire le panneau.
  - Le bouton "Done" permet d'appliquer les choix  l'diteur courant. 
  - Le bouton "Save" permet de sauvegarder ces prfrences dans le fichier
  de prfrences steadrc contenu dans le rpertoire ~/.tk/stead qui
  sera alors cr s'il n'existe pas !
  - Le bouton "Reset to Default Values" permet de rinitialiser le
  panneau de configuration avec les valeurs par dfaut de l'diteur
  sans tenir compte des modifications ni du fichier stead-prefs

  ------------------------------------------------------------------------
  edit User File
  
  dite le fichier de configuration steadrc, contenu dans le rpertoire 
  ~/.tk/stead qui sera cr s'il n'existe pas ! Ce fichier contient les
  prfrencees utilisateur et d'autres commandes TCL dont la procdure
  jedit:userhook qui permet de personnaliser l'diteur.
   Attention : pour appliquer les modifications utiliser
  "Reread User File". 
   
  Si vous ne possdez pas ce fichier, l'excution de "edit Customization
  file" vous en propose un par dfaut.              
                 
  ------------------------------------------------------------------------
  reread User  File 
  
  Relit le fichier de configuration steadrc contenu dans ~/.tk/stead.                 
  (applique les prfrences utilisateurs et rexcute la procdure 
  jedit:userhook.)

  ------------------------------------------------------------------------
  Mode           
  
  Affiche une fentre pour changer de mode. Le menu en bas  droite de 
  l'diteur possde aussi cette fonctionnalit. Les modes disponibles 
  actuellement sont Latex, C, Tcl, Verilog, Pascal, csh, fortran.
                 

  ------------------------------------------------------------------------
  Source config...                                                  

  Ouvre le slecteur de fichier pour choisir un fichier de script Tcl  
  charger
                    
  
  ------------------------------------------------------------------------
  Sous-menu Abbrviations :
  ------------------------------------------------------------------------
  

  ------------------------------------------------------------------------
  Static Abbreviation with Meta-Space                   Control-Meta-Space

  active ou dsactive l'expansion des abrviations statiques ("alias 
  lectriques") avec la touche <Meta-Space>. Prfrence utilisateur 
  "sabbrev". Les alias disponibles dpendent dpendent du mode.
                            
  ------------------------------------------------------------------------
  Dynamic Abbreviation with Meta-Tab                      Control-Meta-tab

   active ou dsactive l'expansion des abrviations dynamiques (par 
   recherche du dernier mot entr) avec la touche <Meta-Tab>.  
   Prfrence utilisateur "dabbrev".
                   
  ------------------------------------------------------------------------
  Expand Static Abbreviation                       si autoris :Meta-Space   
 
   provoque l'expansion d'une abrviation statique au point d'insertion
   si elle existe. Dfinissez vos alias dans steadrc !
                   
  ------------------------------------------------------------------------
  Expand Dynamic Abbreviation                       si autoris : Meta-tab
  
  provoque l'expansion d'une abrviation dynamique au point d'insertion
  si un mot commenant par les mmes lettres a dja t entr.
  NB: un mot  tendre ne doit contenir que des lettres et/ou des chiffres.
  ------------------------------------------------------------------------
  Create General User Aliases
  
  crer des alias gnraux pour l'diteur (voir les alias lectriques).
  Ils sont placs dans le fichier .tk/stead/aliases.tcl.
  Le rpertoire correspondant est cr s'il n'existe pas !
  ------------------------------------------------------------------------
  Reread General User Aliases
        
  Lit les alias gnraux d l'diteur dfinit par l'utilisateur (voir les
  alias lectriques).
  Lit le fichier ~/.tk/stead/aliases.tcl s'il existe.


###################
2.2.6 - Menu Extra
###################

fonctionnalits supplmentaires, appel  des utilitaires Tcl


  ------------------------------------------------------------------------
  Issue Unix Command                                               Meta--U
  
  Affiche une fentre pour entrer la commande Unix  excuter.
  Affiche la sortie de la commande dans la fentre d'information.
  
  ------------------------------------------------------------------------
  Execute Selection                                                 Meta-l
  
  Excute la slection en tant que script tcl.
  Affiche le rsultat dans la fentre d'information.
               
  ------------------------------------------------------------------------
  Issue TclCommand                                            Meta-Shift-T
  
  Affiche une fentre pour entrer la commande tcl  excuter au niveau
  "global". Affiche le rsultat de la commande dans la fentre d'information.
  est efface par <Meta-w> ou <Control-g>
                
  ------------------------------------------------------------------------
  Tcl Shell
  
  Lance l'excutable rmt (inclus dans les scripts). Il s'agit d'un shell
  permetant de "dialoguer" avec l'diteur, c'est--dire lui envoyer des 
  commandes Tcl.
                
  ------------------------------------------------------------------------
  Tkinspect 
  
  Lance l'utilitaire tkinspect non fourni avec STEAD.
  
  ------------------------------------------------------------------------
  Make Admin Menu
  
  Cre un menu d'administration : dition des fichiers de scripts et d'aide
  de STEAD, affichage des variables globales, des procdures. cration du
  tclIndex dans la bibliothque tclLib de STEAD.
  ------------------------------------------------------------------------
                                      
################
################
2.3 - Le clavier
################
################

Sujet :
      
effet des touches particulires (tab,...) et raccourcis clavier
Succint, se referer au manuel utilisateur (chapitre 3)


REMARQUE PRELIMINAIRE : 

la touche Meta est celle situe directement  gauche
de la barre d'espacement.                          

Attention, ces raccourcis dpendent de la configuration du clavier par 
Xwindow (voir Xmodmap).
                          
###########################################################################
2.3.1 - Les raccourcis gnraux de l'diteur
###########################################################################
    
  Tous ces raccourcis concernent des commandes prsentes dans les menus.
On distigue les raccourcis de base et les raccourcis emacs. 
  
2.3.1.1 - Raccourcis de base
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
  RACCOURCIS CONCERNANT LA GESTION DU FICHIER :
  
    - <Meta-o> : ouvre un nouveau fichier (menu File/Open)
    
    - <Meta-O> : ouvre le mme ficher (menu File/Open Same File)
    
    - <Meta-n> : ouvre un diteur vide (menu File/New)
    
    - <Meta-s> : sauvegarde le fichier courant (menu File/Save)
    
    - <Meta-S> : sauvegarde le fichier courant sous un autre nom
                 (Menu File/Save As)
                 
    - <Meta-p> : imprime le fichier courant (menu File/Print)
    
    - <Meta-I> : Insre un fichier au point d'insertion 
                 (menu File/Insert File)
  
    - <Meta-!> : Insre le rsultat d'une commande UNIX 
                 (menu File/Insert Output Of UNIX Command)
          
    - <Meta-Q> : Restaure le fichier dans l'tat de la dernire sauvegarde 
                 effectue (menu File/Reset to Last Save)
                

    - <Meta-?> : Donne des infos sur le fichier (menu File/File informations)
    - <Meta-q> : quitte TE (menu File/Quit)
      

  RACCOURCIS CONCERNANT LA RECHERCHE DANS LE TEXTE
 
    - <Meta-f> : affiche la boite de recherche/remplacement (menu Search/Find)
    
    - <Meta-e> : entre la slection dans le champ de recherche 
                 (menu Search/Enter Selection)
                 
    - <Meta-g> : cherche en avant dans le texte le contenu du champ de
                 recherche  partir du point d'insertion. Slectionne la
                 chaine trouve. Si la chaine de recherche est vide, affiche
                 la boite de recherche.
                 (menu Search/Search Forward)
                 
    - <Meta-i> : cherche en arrire dans le texte le contenu du champ de
                 recherche  partir du point d'insertion. Slectionne la
                 chaine trouve. Si la chaine de recherche est vide, affiche
                 la boite de recherche. 
                 (menu Search/Search Backward)
                 
    - <Control-g> : cherche la slection en avant dans le texte  partir
                    du point d'insertion. Slectionne la chaine trouve. Si la
                    la chaine de recherche est vide, affiche la boite de 
                    recherche. (menu Search/Search Sel Forward)
                    
    - <Control-i> : cherche la slection en arrire dans le texte  partir
                    du point d'insertion. Slectionne la chaine trouve. Si la
                    la chaine de recherche est vide, affiche la boite de 
                    recherche. (menu Search/Search Sel Backward)
                    
    - <Meta-u> : remplace la slection par la chaine de remplacement. Si celle
                 ci est vide, affiche la boite de recherche.
                 (menu Search/Replace)
                 
    - <Meta-h> : remplace la slection par la chaine de remplacement. Si celle
                ci est vide, affiche la boite de recherche. Puis, cherche
                 nouveau dans le fichier.
                (Menu Search/Replace Then Search Again)               
      
   - <Meta-j> : dplacement vers la ligne slectionne ou affichage d'un
                prompt demandant le dbut de ligne. (menu Search/Go To Line)
                
   - <Meta-C> : Affiche la position courante du point d'insertion
                (menu Search/Show Current Position)
                
 RACCOURCIS CONCERNANT LA CONFIGURATION 
 
   - <Meta-m> : Change le mode courant (menu Config/Mode)
   
 RACCOURCIS CONCERNANT LES ABBRVIATIONS
 
   - <Control-Meta-space> : autorise l'expansion des abrviations statiques par
                            Meta-space 
                            (Menu Abbrev/Static Abbreviation with Space)
                    
   - <Control-Meta-tab> : autorise l'expansion des abrviations dynamiques par 
                          Meta-tab
                          (menu Abbrev/Dynamic Abbreviation with Tab)

 RACCOURCIS CONCERNANT LES FILTRES APPLIQUES  LA SLECTION
  
   - <Meta-|> : applique un filtre Unix  la slection courante. Attention :
               mme invoqu depuis un champ d'entre, ce raccourci ne 
               s'applique qu' la slection prsente dans le texte.
               (menu Pipe/Pipe Through Unix Command)
               
 RACCOURCIS SUPPLEMENTAIRES
 
   - <Meta-U> - excute une commande Unix (menu Extra/Issue Unix Command)
   
   - <Meta-T> - excute une commande Tcl (menu Extra/Issue Tcl Command)
   
   - <Meta-l> - excute la slection en tant que commande Tcl
                (menu Extra/Execute Selection)
 
2.3.1.2 - Les Raccourcis Emacs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  GESTION DU FICHIER
  
  - <Control-x><Control-x> : sauvegarde le fichier (quivaut  <Meta-s>)
  - <Control-x><Control-z> : sauvegarde le fichier sous... (voir <Meta-S>)
  - <Control-x><Control-f> : charge un fichier (quivaut  meta-L)
  - <Control-x><Control-v> : quivalent  <Control-x><Control-f>
  - <Control-x><Control-c> : quitte l'diteur (quivaut  <Meta-q>)
  
  RECHERCHE
  
  - <Control-s> : affiche la boite de recherche (quivaut  <Meta-f>)
  - <Control-%> : quivalent  <Control-s>
  
########################################################
2.3.2 - Les raccourcis concernant exclusivement le texte
########################################################
  
  On distingue les raccourcis de base de l'diteur des raccourcis Emacs.
            
  DEPLACEMEMENT DANS LE TEXTE
  
2.3.2.1 - Raccourcis de base
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  
  DEPLACEMEMENT DANS LE TEXTE

    Les 4 flches :
    
    - <Up> : dplace le curseur d'un caratre vers le haut (ou au dbut de la
             slection si elle existe et dslectionne)
    
    - <Down> : dplace le curseur d'un caractre vers le bas (ou a la fin de 
               la slection si elle existe et dslectionne)
               
    - <Right> : dplace le curseur d'un caractre vers la droite (ou a la fin
                de la slection si elle existe et dslectionne)
                
    - <Left> : dplace le curseur d'un caractre vers la gauche (ou au dbut 
               de la slection si elle existe et dslectionne)
               
    - <Home> : dplace le curseur au dbut de la ligne (ou au dbut de la   
               slection si elle existe et dslectionne)
    
    - <End> : dplace le curseur  la fin de la ligne (ou  la fin de la     
              slection si elle existe et dslectionne) 
                
    -<Meta-Up> : dplace le curseur au dbut du fichier (ou au dbut de la   
                 slection si elle existe et dslectionne)

    -<Meta-Down> : dplace le curseur  la fin du fichier (ou  la fin de la   
                   slection si elle existe et dslectionne)

    -<Meta-Left> : quivaut  <Home>
    
    - <Meta-Right> : quivaut  <End>
    
    - <Control-Right> : dplace le curseur  la fin du mot situ  droite
                        du curseur ou le contenant (ou  la fin de la   
                        slection si elle existe et dslectionne).
                        Attention  la dfinition d'un mot.
                        
    - <Control-Left> : dplace le curseur au dbut du mot situ  gauche
                        du curseur ou le contenant (ou au dbut de la   
                        slection si elle existe et dslectionne).
                        Attention  la dfinition d'un mot.
  SCROLLING
  
    - <Page Up> : dplace le curseur d'une page vers le haut (ou au dbut de
                  la slection si elle existe et dslectionne)
                  
    - <Page Down> : dplace le curseur d'une page vers le bas (ou a la fin de
                    la slection si elle existe et dslectionne)
                    
    - <Control-Up> : quivaut  <Page Up>

    - <Control-Down> : quivaut  <Page Down>
    
  EFFACEMENT
    
    - <Backspace> : efface le caractre  gauche du curseur ou la slection 
                  toute entire si elle existe.
                  
    - <Delete> : quivaut  <Backspace>
    
    - <Control-h> : quivaut  <Backspace>
    
  INSERTION DANS LE TEXTE
  
    - <Toute touche> : insre le caractre correspondant  la touche dans le 
                       texte au point d'insertion ou  la place de la 
                       slection si elle existe.
                       
    - <Tab> : Gnralement, insre une tabulation :-). Plus finement :       
              excute si elle existe la procdure dfinissable par
              l'utilisateur jedit:pre_tabkey_hook puis insre une tabulation au
                  point d'insertion ou  la place de la slection.
              Enfin, si elle existe, la procdure jedit:post_tabkey_hook est
              excute. (VOIR Crer des modes)
                
    - <Shift-Tab> : insre une tabulation au point d'insertion ou  la place
                    de la slection. (Utilis dans le cas o <Tab> tend les 
                    abbrviations dynamiques)
                    
    - <Control-i> : quivaut  <Shift-Tab> 
                   (NON : ecras par "Rechecher selection en arrire")
    
    - <Space> :  Gnralement, insre un espace :-). Plus finement :
                 excute si elle existe la procdure dfinissable par
                 l'utilisateur jedit:pre_spacebar_hook puis :
                  - si la prfrence "sabbrev" est  0 insre un espace au
                   point d'insertion ou  la place de la slection.
                  - si la prfrence "sabbrev" est  1 cherche une 
                    abrviation statique correspondant au mot entr.
                 La prfrence "sabbrev" est positionne dans le menu 
                 Config/Dynamic Abbreviation With Tab ou par <Shift-tab> ou
                 encore par les diteurs de prfrences.
                 Enfin, si elle existe, la procdure jedit:post_spacebar_hook
                 est excute. (VOIR Crer des modes)
    
    - <Shift-Space> : insre un espace au point d'insertion ou  la place de 
                      la slection (Utilis dans le cas ou <Tab> tend les 
                       abbrviations statiques)
                       
    - <Return> : Gnralement, insre un retour chariot :-). Plus finement
                 excute si elle existe la procdure dfinissable par
                 l'utilisateur jedit:pre_returnkey_hook puis :
                 insre un retour chariot avec autoindentation (si la
                 prfrence "autoindent" est  1 , voir Les prfrences 
                 Utilisateur).
                 Enfin, si elle existe, la procdure jedit:post_returnkey_hook
                 est excute.
                 
    - <Shift-return> : insre un retour chariot au point d'insertion ou  la 
                       place de la slection (sans autoindentation)
                      
    - <Control-j> : quivaut  <Shift-Return>
   
  ABBREVIATIONS DYNAMIQUES :
  
    - <Meta-Tab> :si la prfrence "dabbrev" est  1 cherche une abbrviation
                  dynamique correspondant au mot entr.
                  La prfrence "dabbrev" est positionne dans le menu 
                  Config/Dynamic Abbreviation With Tab ou par 
                  <Control-Meta-tab> ou encore par les diteurs de prfrences.
                  si la prfrence "dabbrev" est  0 insre une tabulation au
                  point d'insertion ou  la place de la slection.
   
    - <Meta-Space> : si la prfrence "sabbrev" est  0 insre un espace au
                     point d'insertion ou  la place de la slection.
                     si la prfrence "sabbrev" est  1 cherche une 
                     abrviation statique correspondant au mot entr.
                     La prfrence "sabbrev" est positionne dans le menu 
                     Config/Dynamic Abbreviation With Tab ou par 
                     <Control-Meta-space> ou encore par les diteurs de 
                     prfrences.

  
  COUPER, COPIER, COLLER
  
    - <Meta-c> : copier (menu Edit/Copy)
    
    - <Meta-x> : couper (menu edit/Cut)
    
    - <Meta-v> : coller (menu Edit/Paste) 

  SELECTION
  
    - <Shift-Up> : tend la slection vers le haut
    
    - <Shift-Down> : tend la slection vers le bas
    
    - <Shift-Left> : tend la slection vers la gauche
    
    - <Shift-Right> : tend la slection vers la droite
    
    - <Meta-a> : slectionne tout le texte (voir menu Edit/Select all)
    
    - <Meta-d> : duplique la slection (voir menu Edit/Duplicate Sel)

  FILTRES
  
    - <Meta-[> : indente vers la gauche du nombre d'espace prdfini.
                 (voir menu Format/Indent left)
  
    - <Meta-]> : indente vers la droite du nombre d'espace prdfini.
                 (voir menu Format/Indent right)
  
    - <Meta-{> : indente d'un espace vers la gauche
                 (voir menu Format/Indent One Sapce Left)
                 
    - <Meta-}> : indente d'un espace vers la droite
                 (voir menu Format/Indent One Space Left)
                 
    - <Meta-=> : formate la slection (voir menu Format/Fill Sel)
    
    - <Meta-K> : Met la slection en majuscule (voir menu Format/Case/CASE)
    
    - <Meta-k> : Met la slection en minuscule (voir menu Format/Case/case)
    
    - <Meta--> : Insre le prfice avant l'indentation 
                 (Voir Format/Insert Prefix Before Indent)
    
    - <Meta-Control--> : Insre le prfixe aprs l'indentation 
                         (Voir Format/Insert After Before Indent)
                         
    - <Meta-_> : supprime le prfixe (Voir Format/Remove Prefix)
    
    - <Control--> : Dfinit le prfixe courant (Voir Format/Set Prefix)
    
    - <Control-Shift-}> : encadre la slection par des accolades
                          (voir menu Format/Wrap Selection/Sel -> {sel})
    
    - <Control-Shift-]> : encadre la slection par des crochets
                          (voir menu Format/Wrap Selection/Sel -> [sel])
    
    - <Control-Shift-"> : encadre la slection par des guillemets
                          (voir menu Format/Wrap Selection/Sel -> "sel")
    - <Control-Shift-)> : encadre la slection par des parenthses
                          (voir menu Format/Wrap Selection/Sel -> (sel))


  ICONIFICATION
  
    - <Meta-w> : iconifie/dsiconifie l'diteur
    
  BALANCE
  
    - <Meta-b> : slectionne l'intrieur des premiers lment de balance
                 trouvs. (Voir Menu Search/Balance)
    
    - } : en plus d'insrer une accolade fermante, recherche l'accolade
          ouvrante.
          
    - ] : en plus d'insrer un crochet fermant, recherche le crochet
          ouvrant.

    - ) : en plus d'insrer une parenthse fermante, recherche l'ouvrante.
    
  MARQUAGE
  
    - <Meta-m> : dfinit une marque (voir menu Search/Set Emacs Mark)

    - <Meta-M> : se dplace vers la marque dfinie par <Meta-m> 
      (voir menu Search/Jump ti Emacs Mark)
      
 MACROS
 
   on peut dfinir des macros lies aux touches Meta-0, Meta-1, ..., Meta-9
   en dfinissant les procdures te:macro<i> ou est le numro de la macro.
   Par dfaut, on dispose des macros suivantes :
   
   - <Meta-0> : dite le .cshrc
   
   - <Meta-3> : insre une ligne de # (commentaires tcl)
   
   - <Meta-5> : insre une ligne de % (Commentaires Latex)
   
 
            
2.3.2.2 - Raccourcis Emacs 
^^^^^^^^^^^^^^^^^^^^^^^^^^
   
  Les raccourcis Emacs peuvent tres valids ou invalids par une prfrence
  utilisateur (voir Menu Config/Graphic Preference Editor).
  S'ils sont valids, ils s'ajoutent aux raccourcis dits "de base" et les
  crasent en cas de conflit.
   
DEPLACEMEMENT DANS LE TEXTE

  - <Control-p> : quivalent  <Up>
  
  - <Control-n> : quivalent  <Down>
  
  - <Control-b> : quivalent  <Left>
  
  - <Control-f> : quivalent  <Right>
  
  - <Control-a> : quivalent  <Home>
  
  - <Control-e> : quivalent  <End>
  
  - <Escape><-> : quivalent  <Meta-Up>
                
  - <Escape><>> : quivalent  <Meta-Down>
                  
  - <Escape><b> : quivalent  <Control-Left>
  
  - <Escape><f> : quivalent  <Control-Right>
  
SCROLLING
   
  - <Control-v> : quivaut  <Page Down>
  - <Escape><v> : quivaut  <Page Up>
    
EFFACEMENT

  - <Control-h> : quivaut  <Backspace>

  - <Control-d> : efface le caractre  droite du curseur ou la slection
  
  - <Escape-Delete> : efface le mot  gauche du curseur ou la slection
  
  - <Escape><d> : efface le mot  droite du curseur ou la slection
  
  - <Control-k> : efface la fin de la ligne courante (depuis le point 
                  d'insertion ou la slection et insre la ligne efface dans 
                  le buffer Emacs (pas la slection).
  

BUFFER EMACS

  - <Control-w> : efface la slection et la place dans le buffer Emacs

  - <Control-y> : restitue le contenu du buffer emacs
      
REPETITION DE L'EFFET D'UNE TOUCHE
   
  - (<Control-u> ou <Escape>) <0-9> [<0-9>] ...    
  entre un nombre n de telle sorte que le caractre entr aprs le dernier 
  chiffre soit rpt n fois.
  exemple <Control-u> <7> <Q> : affiche sept "Q"
  
  - <Control-u> <une_touche>  equivaut  <Control-u> <key-4> <une_touche>
                              (affiche 4 fois la touche)
  
INSERTION

  - <Control-q><Raccourci> : insre litralement le raccourci
  exemple : <Control-q><Control-q> insre \x11
   
MARQUAGE

  - <Control-space> : positionne la marque emacs (quivaut  <Control-m>)
  
  - <Control-@> : positionne la marque emacs (quivaut  <control-m>)
  
  - <Control-x><Control-x> : intervertit la marque emacs et le point 
                              d'insertion
  
    
###################################################################
2.3.3 - Les raccourcis concernant exclusivement les champs d'entre
###################################################################

Les champs d'entre comme le champ "Search" de la boite de recherche "find",
ne comportemt qu'une ligne de texte. 
Ils ont par defaut la meme fonte que le texte, ce qui permet de
mieux selectionner leur contenu.
 
En plus des raccourcis gnraux de l'diteur, ils "comprennent" les raccourcis 
claviers suivants :


2.3.3.1 - Raccourcis de base
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  INSERTION
  
  <toute-touche> : affiche la touche entre au point d'insertion en
                   remplaant la slection si elle est prsente.
                   
  DEPLACEMENT
  
  <Home> : dplace le point d'insertion au dbut du champ d'entre ou au 
           dbut de la slection en dslectionnant si elle est prsente
           
  <Up> : quivaut  <Home>
            
  <End> : dplace le point d'insertion  la fin du champ d'entre ou  la
          fin de la slection en dslectionnant si elle est prsente.
          
  <Left> : dplace le point d'insertion d'un caractre vers la gauche ou
           positionne le point d'insertion au dbut de la slection et 
           dslectionne si la slection est prsente.
  
  <Right> : dplace le point d'insertion d'un caractre vers la droite ou
            positionne le point d'insertion  la fin de la slection et 
            dslectionne si la slection est prsente.

  <Meta-Left> : equivaut  <Up>
  
  <Meta-Right> : quivaut  <Down>
  
  <Meta-Up> : quivaut  <Up>
  
  <Meta-Down> : quivaut  <Down>   

  <Control-Left> :  dplace le point d'insertion au dbut du mot situ  sa 
                    gauche ou positionne le point d'insertion au dbut de la 
                    slection et  dslectionne si la slection est prsente.

  <Control-Right> : dplace le point d'insertion  la fin du mot situ  sa 
                    droite ou positionne le point d'insertion au dbut de la 
                    slection et  dslectionne si la slection est prsente.
  EFFACEMENT
  
  <Delete> : efface le caractre  gauche du curseur ou efface la slection
             si elle est prsente.
             
  <Backspace> : quivalent  <Delete>
  
  <Control-h> : quivalent  
  
  SELECTION
  
  <Meta-a> : slectionne l'ensemble du champ d'entre
  
  <Meta-d> : duplique la slection dans le champ d'entre (la slection peut
             tre situe dans un autre champ, dans le texte ou dans une 
             autre application)
             ATTENTION : ne pas essayer de duplique la slection dans une 
             entre par le menu "Edit" qui ne concerne que le texte.
             
  <Control-v> : quivaut  <Meta-d>
  
  COUPER, COPIER, COLLER
  
  <Meta-c> : copie la slection dans un buffer
  
  <Meta-x> : coupe la slection (ATTENTION, on ne peut pas couper la
             slection d'un champ d'entre par le menu Edit, rserv au 
             texte !!)
             
  <Meta-v> : colle le buffer au point d'insertion dans le champ d'entre
             (ATTENTION, on ne peut pas coller dans un champ d'entre par
             le menu Edit, rserv au texte !!)
             
  ANNULATION
  
  <Meta-z> : annule la dernire opration effectue dans le champ d'entre
             ATTENTION, la commande Undo du menu Edit n'agit en aucun cas
             sur les champs d'entre, elle est rserve au texte !!
  
  <Meta-Z> : annule le dernier <Meta-z> effectu dans le champ d'entre
             ATTENTION, la commande Redo du menu Edit n'agit en aucun cas
             sur les champs d'entre, elle rserve au texte !!
                
     
     
2.3.3.2 - Raccourcis Emacs 
^^^^^^^^^^^^^^^^^^^^^^^^^^

  DEPLACEMENT
  
  <Control-a> : quivaut  <Home>
  
  <Control-e> : quivaut  <End>
  
  <Control b> : quivaut  <Left>
  
  <Control-f> : quivaut  <Right>
  
  <Escape><b> : quivaut  <Control-Left>
  
  <Escape><f> : quivaut  <Control-Right>

  EFFACEMENT
  
  <Control-d> : efface le caractre situ  droite du curseur ou efface la
                slection si elle est prsente 
  
  <Escape-Delete> : efface le mot situ  gauche du curseur ou efface la
                    slection si elle est prsente 
  
  <Escape-d> : efface le mot situ  droite du curseur ou efface la
               slection si elle est prsente 

  <Control-w> : efface la slection si elle est prsente
  
  <Control-k> : efface les caractres du point d'insertion jusqu' la fin
                du champ d'entre
  
                
###############
###############
2.4 - La souris
###############
###############

########################################
2.4.1 - Les fonctionnalits de la souris
########################################

2.4.1.1 - La souris et le texte
^^^^^^^^^^^^^^^^^^^^^
            
            
              ___________
             |   |   |   |
             | 1 | 2 | 3 |
             |___|___|___|
             |           |
             |           |
             |           |
              \         /
               \_______/ 
                   |
                   |
                   \
            
            
     |--------------------------|-----------------------------------------|
     |  ACTION                  |         EFFET                           |
     |--------------------------|-----------------------------------------|
     |<Enfoncer le bouton 1>    | dslectionne et positionne le point    |
     |                          | d'insertion  l'endroit point          |
     |--------------------------|-----------------------------------------| 
     |<glisser bouton 1 enfonc>| tend la slection et provoque un       |  
     |                          | dfilement d'cran hors du texte        |
     |--------------------------|-----------------------------------------|
     |<Double click bouton 1>   | slectionne le mot "sous le curseur"    |
     |--------------------------|-----------------------------------------|
     |<Triple click bouton 1>   | slectionne la ligne "sous le curseur"  |
     |--------------------------|-----------------------------------------|
     |<Shift+enfoncer bouton 1> | tend la slection jusqu'au caractre   |
     |                          | dsign                                 |
     |--------------------------|-----------------------------------------|
     |<Enfoncer le bouton 2 ET  | duplique la slection au point          |
     | relacher assez vite>     | d'insertion                             |
     |--------------------------|-----------------------------------------|
     | <Enfoncer le bouton 2 ET | provoque un dfilement du texte         |
     |  glisser                 | SANS SELECTIONNER                       |
     |--------------------------|-----------------------------------------|
                                     

##########################
##########################
2.5 - La fentre d'dition
##########################
##########################

     (les fenetres d'info, les differents boutons)
     succint, se referer au manuel utilisateur (chapitre 3)

########################################
2.5.1 - Bouton de mode (en bas  droite)
########################################

  La liste des modes pour le Pop-up menu est trie par ordre alphabtique.
  

###############################################
2.5.2 - le Bouton de position (en bas  gauche)
###############################################

 Cliquer sur le bouton de position excute la commande "Go To Line".

###################################
2.5.3 - les messages d'informations
###################################

  La petite fentre entre les menus et le texte contient les messages 
  d'informations de rsultat des actions. Si cette information se rvle
  trop longue, une fentre spare est ouverte.
  
  Dans les deux cas, les informations peuvent etre selectionnes  la 
  souris, pour l'usage dsir.
  
   
###########################################################################
###########################################################################
###########################################################################

3 - Manuel d'Utilisation

###########################################################################
###########################################################################
###########################################################################

   == tout ce qu'on peut faire avec l'diteur  l'exclusion de la programmation
   Tcl.
   chaque rubrique parle des fonctionnalits de base au dbut, puis des 
   fonctionnalits avances vers la fin et ce de faon clairement dlimite 
   pour permettre a l'utilisateur de ne lire que ce dont il a besoin.

   A voir : la dernire partie de chaque rubrique peut constituer le
   manuel de programmation a savoir quelles procedures, variables globales
   sont concernes par la rubrique, dans quel fichiers sont elles-situes, 
   etc ...

  
################################################
################################################
3.1 - La slection et la slection rectangulaire
################################################
################################################


Sujet :

  Slection X et buffers
  comment slectionner, dupliquer, copier, couper, coller
  comment est gere la selection rectangulaire

                   
                     -------------------------------- 
                     - Comportement de la selction -
                     -       pour stead             -
                     --------------------------------

###################         
3.1.1 - gnralits
###################                     

A la diffrence de jedit, STEAD ne permet pas d'avoir en mme temps un point 
d'insertion et une slection. Ainsi, lorsque du texte est slectionn, le
curseur reprsentant le point d'insertion disparait. Toutes les 
fonctionnalits dcrites ici sont valables aussi bien pour le texte que pour
les "entres" qui en dpendent,  l'exclusion de la slection rectangulaire.
               
#############################
3.1.2 - Slectionner du texte
#############################

- On peut slectionner du texte en glissant avec le bouton de gauche de la 
souris enfonccomme dans la plupart des applications X-window. Un scrolling est 
alors dclench si la souris sort de l'cran.

- Un double click slectionne le mot courant

- Un triple click slectionne la ligne courante

- un click sur le bouton de droite tend la slection du point d'insertion
 (ou de l'extremit de la slection la plus proche jusqu'au point dsign.

- Maintenir <Shift> enfonc lorsqu'on clicke sur le bouton de gauche tend
 la slection de faon  augmenter sa taille (attention : diffrent du bouton
 de droite :  faites des essais !!).

- Appuyer simultanment sur Shift et les flches tend aussi la slection
  Cette extension conserve la slection par mot ou par ligne (un double 
  click suivi d'un shift-flche, slectionnera le mot suivant celui 
  prcdemment slectionn). 

  *BUG* Ne marche pas au lancement de l'diteur

- On peut slectionner tout le fichier courant par <Meta-a> ou en 
  choisissant "Select All" dans le menu "Edit"
     
- SELECTION RECTANGULAIRE :

  appuyer simultanment sur <Control> et sur le bouton droit de la souris 
  cre une slection rectangulaire du point d'insertion ou de l'extrmit
  GAUCHE de la souris jusqu'au point dsign. La slection rectangulaire 
  peut par exemple slectionner une colonne de texte.
  
  *BUG 1* On ne peut utiliser la slection rectangulaire que dans l'diteur
  courant. On ne peut pas rcuprer la slection rectangulaire d'un autre
  diteur.
  
  *BUG 2* pour l'instant la slection rectangulaire ne peut pas tre plus 
  large que son extrmit. 
  
  
  Ainsi, pour slectionner la figurine ci-dessous de faon rectangulaire,
  il faut rajouter trois espaces apres le dernier caractre :
 
---------------------------------------------------------------------------
                        |\/\/\/| 
                        |      | 
                        |  _  _| 
                        | (o)(o) 
 Bart Simpson           C      _)
 Simpson@ailleurs.fr     |     | 
                         | '___| 
 Bla Bla Bla ....        |   /   
      
--------------------------------------------------------------------------  
 *BUG 3* Les tabulations ne sont pas gres par la slection rectangulaire

De mme, les fontes proportionnelles entranent des perturbations

############################
3.1.3 - Effacer la slection
#############################

Lorsque du texte est slectionn, on efface la slection (rectangulaire ou 
non) en appuyant sur <Backspace>, ou <Delete>.


##############################
3.1.4 - Dupliquer la slection
##############################

Lorsque du texte est slectionn, on duplique la slection en appuyant sur
le bouton du milieu de la souris ou par <Meta-d>, ou encore en choisissant 
"Duplicate Sel" dans le menu "Edit".
Ceci permet d'insrer une slection situe dans une autre application que 
STEAD.

Lorsqu'on vient de dslectionner du texte. On peut encore dupliquer la
slection au point d'insertion. Ceci permet d'insrer la slection 
prcdente  un autre endroit du fichier.

Si on duplique une slection rectangulaire, la slection s'insre dans le 
texte en respectant sa configuration initiale. Par exemple, on peut 
facilement rcuprer la figurine ci dessus pour l'insrer ensuite dans du
 texte :

---------------------------------------------------------------------------
|\/\/\/|  Bart Simpson          |\/\/\/| 
|      |  Simpson@ailleurs.fr   |      | 
|  _  _|                        |  _  _| 
| (o)(o)  Bla Bla Bla ....      | (o)(o) 
C      _)                       C      _)
 |     |                         |     | 
 | '___|                         | '___| 
 |   /                           |   /   

---------------------------------------------------------------------------


POUR UNE COPIE RAPIDE DE LA SELECTION

 - selectionner la partie a copier
 - positionner le curseur a l'endroit ou copier
 - copier avec le bouton 2

############################## 
3.1.5 - Remplacer la slection
############################## 

Lorsque du texte est slectionn, l'appui sur une touche correspondant  un
caractre affichable remplace la slection (rectangulaire ou non) par ce 
caractre.


###################################
3.1.6 - Le COPIER - COUPER - COLLER
###################################

Lorsque du texte est slectionn, on copie la slection par <Meta-c> ou en
choisissant "Copy" dans le menu "Edit".
On coupe la slection par <Meta-x> ou en choisissant "Cut" dans le menu "Edit".
Ces deux opration sauvegardent la slection dans un buffer. 

Attention :  la diffrence de la duplication, la slection doit tre prsente
exclusivement dans le texte dit ou dans une des "entries" qui en dpendent.

On colle le contenu du buffer au point d'insertion (ou a la place de la 
slection courante) par <Meta-v> ou en choisissant "Paste" dans le menu "Edit".
Ce qu'on vient de coller n'est pas slectionn.



#############################
#############################
3.2 - Le slecteur de fichier
#############################
#############################
  
sujet :
  fonctionnement, options
    
##########################
3.2.1 - Choix d'un fichier
##########################

    Slectionner le fichier dans la liste fournie en cliquant deux fois
    sur le fichier ou entrer le nom du fichier au clavier dans le champ "File".
    Appuyer ensuite sur <Return> ou sur le bouton <Ok>
    
    Attention, les fichiers se terminant dans la liste par un '/' sont des
    rpertoires.
    
##########################
3.2.2 - Expansion des noms
##########################
    
    Il est possible de n'entrer que le dbut des noms de fichiers ou de 
    rpertoire. S'il n'y a pas de conflit, l'appui sur la touche 
    <Meta-Barre d'espacement> complte le nom.
    
#####################################
3.2.3 - Affichage des fichiers cachs
#####################################
   
    Un bouton "Show Hidden Files" est  votre disposition pour choisir
    ou non d'afficher les fichiers ou rpertoires cachs (commenant par un .).
    
#############################
3.2.4 - Filtrage des fichiers
#############################
    
    Une entre "Filter" permet d'appliquer un filtre sur les fichiers du 
    rpertoire. * signifie tous les fichiers. *.tcl signifie "Tous les fichiers
     se terminant par .tcl". Il s'agit du style "glob" (voir UNIX : ls,...).
    S'ils sont affichs, le filtre s'applique aussi aux fichiers cachs.
    Le brower propose une liste des extensions disponibles dans le repertoire
    courant, pouvant faire office de filtre. Cliquer sur "Filter" pour
    obtenir cette liste et choisir le fitre dsir.
    Attention, Le filtre ne s'applique pas aux rpertoires.
    
    L'appui sur return dans le champ "Filter" entraine la relecture du
    rpertoire et l'affichage de fichires correspondant au filtre.
    
#####################################################
3.2.5 - Navigation dans les champs "File" et "filter"
#####################################################
    
    L'appui sur <Tab> dans un champ provoque le passage au champ suivant.
    
###################
3.2.6 - Raffichage
###################
    
    Pour qu'une e modification soit prise en compte (changement de filtre,
    choix d'affichage des fichiers cachs) il est ncessaire de cliquer sur
    le bouton "Rescan" qui provoque le raffichage de la liste des fichiers.


##################
##################
3.3 - L'impression
##################
##################
    
  La boite de dialogue "imprimer" se prsente sous la forme d'un prompt avec
  la commande d' impression modifiable. La commande d'impression est une 
  prfrence utilisateur. (Voir prfrences utilisateur)
  STEAD remplace tout "%F" plac dans la commande par le fichier. 
  si le fichier est propre (non modifi) on imprime le fichier lui-mme. 
  Sinon, c'est le contenu du texte dit qui est imprim  travers un fichier 
  tampon.
  STEAD indique lorsque l'impression est termine et dtruit alors le fichier
  tampon ventuellemnt cr.
  
  Exemple de commande imprimer par dfaut (extrait du fichier stead-prefs) : 
  
  *print_command: a2ps -8 %F | lp -dpastis 
  
  (Ne marche que sur HP) 
  
  Si le nom du fichier termine la commande, il n'est pas ncssaire d'crire
   "%F"  la fin : exemple dans le fichier stead-prefs : 
   *print_command: imprimer 

  FICHIERS TEMPORAIRES, PROBLEMES


################################
################################
3.4 - L'annulation des commandes
################################
################################

Sujet :
  comment annuler / refaire
  qu'est-ce qui peut ou ne peut pas tre annul
  comportement par rapport a l'etat propre ou pas du fichier
  empcher l'annulation
    
La plupart des commandes modifiant le fichier ( part l'entre simple d'un
caractre affichable) provoquent la sauvegarde d'un "checkpoint" ou point
'annulation (sauvegarde en en mmoire de la valeur du texte  ce moment prcis).

- L'utilisation de la commande Undo (Dans le menu Edit ou par Meta-z) permet
  un retour  l'tat prcdent la dernire commande annulable.

- La commande Redo (Meta-Z) permet d'annuler le undo prcdent.

On navigue ainsi dans un anneau d'tats succesifs du fichier.

Le undo restaure aussi l'etat du fichier (Marques, tags, selection,...)
Il est possible d'effectuer des checkpoint manuels (commande checkpoint dans 
le menu Edit)
le undo fonctionne aussi pour les entres
le undo fonctionne aussi pour l'expansion des abbreviations dans le texte 
d'une facon particulire.

Conseil :
Le undo de STEAD prend beaucoup de place en memoire pour les gros fichiers.
Aussi est-il conseille de limiter le nombre de niveaux de undo a 30 (editer
pour cela le fichier stead-prefss puis utiliser "reread preferences file" 
dans le menu Config ou utiliser le panneau "editor preferences".

performance :
Si les performances de STEAD sont trop ralenties, on peut inhiber le undo (utiliser
"disable undo" dans le menu Edit) ou liberer la memoire des undo ("clear undo
memory")



#################################
#################################
3.5 - Les prferences utilisateur
#################################
#################################

Il s'agit de toutes les options de l'diteur modifiables par l'utilisateur.
Pour changer la fonte du texte, sa couleur ou la commande d'impression
utiliser le menu "Config/Graphic Preferences Editor" qui permet d'editer
graphiquement ces prfrences, d'appliquer les changements  l'diteur
courant (bouton "Done"), d'annuler les changements (Cancel), d'initialiser
les prfrences aux valeurs par dfaut de stead ("Reset") et enfin
d'appliquer les changements tout en les sauvegardant afin de conserver
leur effet pour une autre session (Save).

Les prfrences utilisateurs sont sauvegardes dans le fichier steadrc
situ dans le repertoire .tk/stead (variable globale TE_USER_DIR) sous la
forme set EDITPREFS(<nom-de-prfrence>) {<valeur>}
On peut diter directement ce fichier par "Config/Edit User File")
On crira les prfrences entre les lignes de commentaires
# PREFERENCES UTILISATEUR
et
# FIN DES PREFERENCES UTILISATEUR
Ainsi lors d'une sauvegarde des prfrences par le panneau de configuration
bouton "Save", menu "Config/Graphic Preferences Editor", Stead crase les
valeurs crites dans le fichier steadrc par les valeurs courantes sans toucher
au reste des commandes tcl de ce fichier.

Voici leur signification :

   0 : pas d'action, 1 : action, entre paranthses : valeur par dfaut.

   autobreak         : couper les longues lignes avec des espaces (0)
   
   autoindent        : autoindentation (1)
   
   autoposition      : auto-positionnement des boites de dialogue au
                       centre de l'cran (1)
                       
   bindings          : raccourcis claviers basiques ou emacs (emacs) 
   
   clear_undo        : effacement de la memoire des undo aprs une
                       sauvegarde (1)
                         
   dabbrev           : expansion des abrviations dynamiques avec Meta-Tab (0)
   
   flashtime         : temps de coloration des parties surlignes (par la 
                       balance ou le go-to-line par exemple) (500 ms)
                      
   highlightbg       : couleur de fond du surlignage (magenta)
   
   indent_string     chaine d'indentation (2 espaces par dfaut "  ")
   
   j_fs_fast          : browser rapide (0)
    
   otherabg           : couleur de fond pour les lments activs de 
                       l'diteur autres que le texte (#c9baa7)
                       (un bouton est activ lorsque la souris est dessus,
                        par exemple)
                                            
   otherbg            : couleur de fond pour les lments autre que le 
                       texte 
  
   otherfg            : couleur d'encre pour les lments autre que le 
                        texte
  
NB : rglez vos couleurs  l'aide de la palette 
(voir menu Config/Graphic Preferences Editor)  
  
   prefix             : valeur du prfixe (#)
   
   print_commmand     : commande d'impression 
                        (a2ps -8 %F | lp -dpastis)
   
   sabbrev            : expansion des abbrviations statiques par <Meta-Space>
                        (0)
                        
   savestate          : sauvegarde de l'tat du fichier (position, 
                        slection marques et tags du fichier) (0)
                        
   scrollbarside      : barres de dfilements sur la gauche (left)
   
   textbg             : couleur de fond du texte
          
   textbw             : paisseur du bord du texte (2)
          
   textfg             : couleur d'encre du texte
          
   textfont           : fonte du texte selon l'ordre : 
                        foundry, family, weight, slant, set width, add style,
                        pixel size, point size, resolutionX, resolutionY, 
                        spacing, avg width, registry, encoding,
              (-*-lucidatypewriter-medium-r-normal-*-12-*-*-*-*-*-iso8859-*)
              
   textheight         : hauteur du texte (80)
   
   textiw             : largeur du curseur dans le texte (2)
          
   textsb             : couleur de fond de la slection
          
   textsbw            : paisseur du bord de la slection (2)
   
   textsf             : couleur d'encre de la slection
   
   textwidth          : largeur du texte en nombre de colonnes (40)
   
   textwrap           : faon d'afficher le texte (on n'affiche pas les
                        caractres en trop sur une ligne : none, on coupe 
                        la ligne suivant les caractres : char ou suivant 
                        les mots : word.)
                        (char)
  
   tk_strictMotif     : mulation motif stricte (0)
   
   undoable           : utilisation possible du undo (1)
   
   undolevels         : nombre de commandes annulables (30)


Pour les changer, ditez ce fichier ou utilisez le panneau de configuration 
dans le menu Config.

###############################      
###############################      
3.6 - La recherche/remplacement
###############################
###############################


Sujet :
  
  description du panneau de recherche remplacement et fonctionnalits
  simples
  recherche reguliere
       
#########################################
3.6.1 - Effectuer une recherche rgulire 
#########################################

Pour effectuer une recherche rgulire dans le texte afficher la boite de 
dialogue "Find" en en slectionnant "Find..." dans le menu "Search" ou en 
entrant <Meta-f>

Parmi les boutons d'options se trouvent les boutons "Regexp-find" et 
"Regexp-by-line".  
      
Le premier indique que la chaine de recherche est une expression rgulire.
Le second indique si la recherche s'effectue dans tout le fichier, ou ligne 
par ligne (option par dfaut)

Aprs avoir entr l'expression rgulire, lancer la recherche par le bouton 
search ou par les divers raccourcis.

IL N'EST PAS POSSIBLE :

- de remplacer par une sous-chaine 
- de rechercher en arrire


##################################
3.6.2 - Les expressions rgulires
##################################

Elles contiennent certains caractres possdant une signification 
particulire : 

^ : remplace le dbut de la chaine
 
$ : remplace la fin de la chane

. : remplace tout caractre

[] : les crochets indiquent remplacent un caractre parmi ceux contenus dans
     le crochet.Il est possible de reprsenter un intervalle de caractres 
     par le signe '-'. Un ^ (accent circonflexe) aprs le premier crochet 
     inverse le sens de l'intervalle.
      
     Exemples :

       [a3d] remplace un des caractres 'a' ou '3' ou 'd'
       [a-zA-Z] remplace toute lettre (minuscule ou majuscule)
       [^a-zA-Z] remplace tout caractre sauf une lettre
       
+ : Plac aprs une expression rgulire, remplace une ou plusieurs 
    occurences de l'expression.
    
* : Plac aprs une expression rgulire, remplace zro ou plusieurs 
    occurences de l'expression.

? : Plac aprs une expression rgulire, remplace zro ou une occurence 
    de l'expression.
       
() : les parenthses servent  grouper plusieurs expressions rgulires en
     une seule

     Exemple :
       (Ab)* une squence (pouvant tre nulle) de 'Ab'
       ^(0x)?[0-9a-fA-F]$ remplace tout chaine qui est un nombre hexadcimal
     
regexp1|regexp2 : remplace l'une et l'autre des expressions rgulires

\x : remplace le caratre x sauf pour les caractres spciaux suivants :
     - \a : Alerte sonore (0x7)
     - \b : Backspace (0x8)
     - \f : Form feed (0xc)
     - \n : Return (0xa)
     - \r : Retour chariot (0xd)
     - \t : Tabulation (0x9)
     - \v : tabulation verticale (0xb)
     - \ddd : caractre dont la valeur octale est ddd (un, deux ou trois
              chiffres)
     - \xhh : caractre dont la valeur hexadcimale est hh (nombre 
              quelconque de chiffres)
     
pour obtenir remplacer '\x' x tant n'importe quel caractre, il suffit 
d'utiliser \\x comme expression rgulire.

La chaine de recherche est dfini par l'option "Regexp-by-line" :
 

#################################
3.6.3 - Recherche ligne par ligne
#################################

L'expression rgulire est teste dans la ligne courante et non dans le 
fichier.Les retours chariots ne sont jamais slectionns comme des 
caractres quelconques.

Cela signifie que :
- '^' remplace le dbut de la ligne suivant le point d'insertion
- '$' remplace la fin de la ligne suivant le point d'insertion
- '.' remplace tout caractre sauf un <return> qui marque la fin de la 
      ligne
lorsque $ est prsent dans la chane de recherche, le dernier return de la
ligne est slectionn

LA RECHERCHE S'EFFECTUE A PARTIR DU POINT D'INSERTION  MAIS ^ EST LE DEBUT
DE LA LIGNE SUIVANTE SAUF SI ON EST SUR LE PREMIER CARACTERE DU FICHIER.

Exemples :

^.*$   : slectionne tour  tour toutes les lignes du fichier
^$     : slectionne les lignes vides du fichier
[^X]+  : slectionne A L'INTERIEUR DES LIGNES tout ce qui ne contient pas de
         X
^[^X]+ : slectionne tour  tour les lignes qui ne commencent pas par un X
         jusqu'au premier X rencontr.
[^X]$  : slectionne tour  tour les lignes ne finissant pas par un X du
         caractre
         suivant le dernier X jusqu'au dernier (y compris le return)
         
^\t+   : selectionne toutes les tabulations au dbut de chaque ligne

etc...

Dans le cas de la recherche rgulire "ligne par ligne", la recherche d'un 
<return> n'a aucun sens : il est donc inutile de rechercher les caracteres
speciaux \n, \x0a et \12.

BUG ? :
.* : ne donne rien
.*$ : ne marche que pour une seule ligne

######################################
3.6.4 - Recherche dans tous le fichier
######################################

L'expression rgulire est teste dans tout le fichier, les retours chariots
sont pris en compte comme des caractres quelconques. 
D'ou :
- '^' est le point d'insertion
- '$' est la fin du fichier

La recherche s'effectue  partir du point d'insertion.

#############################
3.6.5 - Exemples de recherche
#############################


\n\n\n  : slectionne trois return conscutifs,m ce qui coreespond  deux
          lignes vides
[^X]+   : slectionne DANS LE TEXTE tout ce qui ne contient pas de X (y 
          compris les <return>)
          
[^X]$   : slectionne  partir du point d'insertion du caractre
           suivant le dernier X jusqu' la fin du fichier.
   
BUG ? 

- la recherche rgulire ligne par ligne d'un point "\." ne marche pas
  pour l'instant dans : utiliser le recherche globale.
.*$ ne marche qu'une seule fois
^.* idem

####################
3.6.6 - Remplacement
####################


Si on est en mode de recherche rgulire alors la chaine de remplacement
est aussi une chaine rgulire acceptant les mmes substitutions que la 
chaine de recherche avec deux diffrences majeures :

- le caractre & remplace la chaine trouve en entier 
- \x (o x est un entier) remplace la x-ime sous-expression parenthse :

ATTENTION toujours sauvegarder AVANT de faire une recherche remplacement !!


#########################################
3.6.7 - Exemple de recherche/remplacement 
#########################################
(mode ligne par ligne)

ex 1 :

  chaine de recherche : ^[#%]
  chaine de remplacement : &&
  
  => double les caractres # ou % s'ils commencent une ligne

ex 2 :

  chaine de recherche : ^[#%](.+)[#%]$
  chaine de remplacement : \1
  
  => supprime tous les  # ou % situs en debut ou en fin de ligne
  
ex 3 :

  chaine de recherche : [\.:]
  chaine de remplacement : &\n
  
  => saute une ligne aprs un . ou :
  
  
  
Autre Exemple : 


Comment supprimer une grande zone de texte mal dfinie, par exemple pour 
supprimer les 12 premires pages d'un fichier postscript  imprimer.

Solution  :


  - chercher la chaine "Page" ou "showpage" pour voir l'allure des 
    commande de saut de page,

  - En fonction du resultat, on peut :

    chercher :  
    
        "%%Page: slide_1 1.*%%Page: slide_12 12"
                          ^^  ==> ces deux meta caractere representent 
                                  une chaine quelconque
        
    et remplacer par :
    
        "%%Page: slide_12 12"

                              
    en utilisant les options suivantes :
        
       - "Regexp-find"   avec l'option "Regexp-global"
                         (ou supprimer l'option "Regexp-by-line"

#################################
#################################
3.7 - La navigation dans le texte
#################################
#################################
  
     - reference a la recherche remplacement
     - les numeros de lignes
     - la gestion des marques
     - colorer certaine lignes pour se reperer           

 
##############################
##############################
3.8 - La gestion de la balance
##############################
##############################
  
Sujet :
  definition, recherche automatique

Lorsqu'un element de balance est entre, par exemple },] ou ), stead recherche
automatiquement l'le partenaire gauche correspondant et le surligne quelques
instants. De plus, la commande "Balance" permet de selectionner le premier
groupe de carateres entourees par ces elements.

ATTENTION : la selection des balance peut prendre un certain temps si
le fichier comporte beaucoup d'elements de balance

ASTUCE D'UTILISATION DE BALANCE

Pour aller au debut d'une longue parenthese qu'on vient de fermer (par
exemple le corps d'une longue procedure TCL...), taper la sequence 
suivante :
 
    <FLECHE GAUCHE> < Meta-b> <FLECHE GAUCHE>

Explication :
 
<FLECHE GAUCHE> : pour se positionner juste avant la parenthese fermante
< Meta-b>       : pour selectionner toute la parenthese
<FLECHE GAUCHE> : pour se positionner en debut de selection puis 
                  deselectionner

#################
#################
3.9 - Les filtres
#################
#################
  
  Ces commandes fonctionnent de la mme manire : on slectionne un ensemble de
  caractres puis on actionne la commande par le menu Format ou le raccourci
  correspondant et la slection est remplace par le rsultat de la commande.
  
  La plupart s'appliquent aussi  la slection rectangulaire.
  
##############################
3.9.1 - L'indentation de texte 
##############################
            
  La chaine d'indentation peut etre definie par Format/"set indent spaces".
            
  La commande dindente toujours aprs avoir remplac les 
  tabulations de dbut de ligne par le nombre d'espaces adquat et
  aprs avoir tendu la slection au dbut de la premire ligne
  et  la fin de la seconde.

L'indentation effectue un traitement assez lourd (mais efficace !) sur les
tabulations. Aussi,refuse-t-elle de fonctionner si la selection est trop 
importante : selectionnez moins de 100 lignes a la fois pour les indenter

            
##################
3.9.2 - Le prfixe
##################

Par le clavier (voir "Les raccourcis concernant exclusivement le texte") ou le 
menu (voir menu Format) on peut faire prcder chaque lignes de la slection
d'un ensemble de caractre appel prfixe, avant ou aprs l'indentation.

Le prfixe est dfini comme une prfrence utilisateur de l'diteur
(voir Prfrences utilisateur "prefix" et "menu Format"/"Set Prefix").

Cependant, il dpend en gnral du mode et correspond souvent  la mise en
commentaire du langage considr.

Aussi suivant le mode, le prfixe dfini par l'utilisateur pourra tre remplac
par le prfixe propre au mode.

Exemple : pour le mode Tcl, le prfixe est #
          pour le mode Latex, le prfixe est %


POUR ALLER PLUS LOIN :

Toutefois, rien ne vous empche de changer le prxixe par dfaut d'un mode
en ditant votre fichier ~/.tk/stead/<nom_de_mode>-mode-user.tcl
(<nom_de_mode>/Customize Mode)

ex :

 set EDITPREFS(prefix) "<<<"

        
################################################
3.9.3 - Le passage par UNIX (filtres, commandes) 
################################################



APPEL A UNIX : permet de combler les lacunes de l'editeur

Exemple d'utilisation des menus "File/Insert UNIX cmd..." et 
"Pipe Through unix cmd..."

pour inserer le rsultat de la commande "ls -al"

Menu "FILE/Insert-output of..." taper "ls -al"

total 4356
drwxr-xr-x  37 diam     lei         3072 May  4 08:00 .
drwxr-xr-x  21 diam     lei         3072 May  4 08:27 ..
-rwxr-xr-x   1 diam     lei        25381 Oct 22  1993 .newsrc
drwxr-xr-x   2 diam     lei         1024 Mar 21 08:36 ALLIANCE
drwxr-xr-x   2 diam     lei         1024 Jul 29  1993 ARCHITECTURE

Pour supprimer les lignes correspondant a des repertoires : selectionner le
texte, et filtrer la selection par la commande UNIX : 
Menu "PIPE/Unix Pipe through..." et taper "grep ^\[^d\]"
(Noter les "\" avant les crochets pour eviter l'interpretation TCL)

-rwxr-xr-x   1 diam     lei        25381 Oct 22  1993 .newsrc


ON PEUT AUSSI taper directement :
Menu "FILE/Insert-output of..." taper "ls -al | grep ^\[^d\]"

--------------------------------------------------------------------------
MANUEL DE MAINTENACE

Pas d'interpretation TCL avant l'excution du filtre Unix.
--------------------------------------------------------------------------
###############################################
3.9.4 - Le passage par TCL (filtres, commandes) 
###############################################
  
  Voir menu Format fill, Case, Sort, Wrap selection).
 
  REMARQUE :

  - La slection, entre de la commande fill, CASE, case et tout filtre en 
  gneral n'est pas forcment incluse dans le texte. Ceci permet d'insrer
  un filtre appliqu  un ensemble de caractre contenu dans une autre
  application (xterm, ...) dans votre texte.

##################################
##################################
3.10 - Les abrviations dynamiques
##################################
##################################

The editor supports two different models of abbreviation expansion: dynamic
abbreviation and static abbreviation, inspired by Emacs' dabbrev-mode and
abbrev-mode, respectively.  Both are intended to save keystrokes by allowing
you to type a short sequence of characters and have the editor expand it to 
an entire word.  Both are enabled through entries on the `Abbrev' menu or
through checkboxes on the ModeSpecific Preferences panel (described under 
Preferences);  there are also keyboard equivalents.

Dynamic Abbreviation
In dynamic abbreviation, you can type the beginning of a word you've used
earlier in the text and press the Meta-Tab key.  
The editor will search backwards
in the text and try to find a word that starts with the letters (and/or 
numbers) you've typed.  If such a word is found, the word you're typing will 
be expanded to match (and a space will be inserted to end the word).  If no 
matching word is found, nothing happens.


############################
############################
3.11 - Les alias lectriques
############################
############################


Sujet :

fonctionnement general, fichiers concernes, 
positionnement par rapport aux modes

electricAlias Help LAST UPDATE: 01/24/93 9:29:39 AM 

This help file refers to version 1.7 of electricAlias.tcl

######################
3.11.1 - GENERAL USAGE
######################

    ElectricAlias is simple to use.  Normally it is bound to the
    <TAB> character, so you just type away.  You define aliases
    in file steadrc

#############################
3.11.2 - TEMPLATE DEFINITIONS
#############################

  electricAlias-def MODE NAME ?DEFINITION?

  Defines or displays an alias template.  If DEFINITION
  is omitted and the alias exists, then the current
  definition is returned per TCL 'return'.
  
  Aliases may have embedded variables, TCL commands, stops,
  line-ends and deletes as described under TEMPLATES below.

  If MODE begins with a bullet (), then the alias is only effective
  when used as the first token on a line.


  Templates provide a mechanism for inserting text with temporary stops.
  Facility is also provided to preserve indentation and allow for alias
  variable insertion and TCL commands.  This is accomplished with special
  character sequences embedded within the template.  Hopefully, none of
  these are needed in the inserted text itself. 
    
  Here are the definitions:

  \b          deletes one character to the left.  Useful for outdenting.

   (xa5)     inserts a temporary mark (global variable EA_8bit_mark)

  CMD      inserts the results of executing the TCL command CMD.  Be
  (a4 c7 c8)  careful if your command contains anything that would be
  	      construed as part of a regular expression.  To be safe use
              only single procedures with simple arguments.  Also, the CMD
              may not contain a closing ''.

              It is possible for CMD's to be recursive (subject to the 
              same restrictions above) or include {VAR}'s.
              global variables EA_8bit_begin and EA_8bit_end

  {VAR} (a4) inserts an alias variable (IMPORTANT: inserted AFTER CMD's)
              It is possible for {VAR}'s to be recursive or include 
              CMD's (subject to the CMD restrictions above).
              global variable EA_8bit_var

  \r        inserts a new-line break and cues procedure to preserve 
            indentation if alias mode is bullet type or when called 
            explicitly.

  \n        identical to \r

  \t        inserts a tab for indentation

  Other escapes are as defined by TCL

  You can trick templates to insert some of the above with the following;
  although, why you would want to is beyond me.
  
  '\ \bb' inserts literal '\b'
  ' \bCMD' inserts literal 'CMD'
  ' \b{VAR}' inserts literal '{VAR}'
  
  
  En rsum, on dispose des variables suivantes 
  
                            EA_8bit_mark   : 
                            EA_8bit_begin  : 
                            EA_8bit_end    : 
                            EA_8bit_var    : 
  pour les electric alias
  
  La premiere possede deux significations :
  
    1-place avant le nom du mode dans la dfinition d'un electric alias, elle
      signifie que l'alias ne sera reconnu que s'il est le premier mot de la
      ligne : 
    2-au sein de la dfinition de l'electric alias elle insre une marque
      temporaire pour le navigation au sein de l'alias tendu
  Exemple :
   electricAlias-def C while   "while ()\r  {\r\t\r  }\r"
   1-l'alias "while" pour le mode C ne sera etendu que s'il est le premier mot 
   de la ligne car "C" est prcd de 
   2-trois marques  sont insres aprs extension de l'alias while.
   Ce caractre huit bits n'tant pas accessible au clavier, on peut crire :
   set M $EA_8bit_mark
   electricAlias-def [set M]C while   "while ($M)\r  {\r\t$M\r  }\r$M"
   
  La seconde et la troisime entourent l'appel d'une procdure dans un electric 
  alias
  
  La quatrime permet la dfinition d'une variable propre aux lectric Alias


########################
3.11.3 - SIMPLE EXAMPLES
########################

    The following examples show several templates that might be appropriate
    for the C programming language:
    
    electricAlias-def C while   "while () {\r\t\r}/*endwhile*/"
    electricAlias-def C for     "for (;;) {\r\t\r}/*endfor*/"
    electricAlias-def C if      "if () {\r\t\r}/*endif*/"
    electricAlias-def C elseif  "\b} else if () {\r"
    electricAlias-def C else    "\b} else {\r"

    Suppose that the user has an open window for MYFILE.C (please bear
    with the poor graphics):
    +-------------------
    | MYFILE.C
    +-------------------
    |
    +-------------------

    By typing 'while\t' this would insert:
    
    +-------------------
    | MYFILE.C
    +-------------------
    |while () {
    |	
    |}/*endwhile*/
    +-------------------
    
    The cursor would be positioned inside the parentheses ready for an
    expression to be typed.  When done with the expression, the user would
    press CONTROL-J to jump to the next position where the body of the
    WHILE loop would be entered.  A final CONTROL-J would position the user
    just after the /*endwhile*/ comment.
    
    For this example, suppose the user types 'i < 5';

    Suppose the user type 'if\t' inside the body of the while, then we
    would get:

    +-------------------
    | MYFILE.C
    +-------------------
    |while (i < 5) {
    |	if () {
    |		
    |	}/*endif*/
    |}/*endwhile*/
    +-------------------

    For the IF conditional suppose the user typed '*c != 0'.
    Now in the body of the IF the user enters 'a = 1;else\ta = 2' and gets:
    
    +-------------------
    | MYFILE.C
    +-------------------
    |while (i < 5) {
    |	if (*c != 0) {
    |		a = 1;
    |	} else {
    |		a = 2;
    |	}/*endif*/
    |}/*endwhile*/
    +-------------------

    Suppose you don't like my indentation style for C.  Perhaps the 
    following definitions and the resulting code would be more suited to
    your tastes:

    electricAlias-def C while   "while ()\r  {\r\t\r  }\r"
    electricAlias-def C for     "for (;;)\r  {\r    \r  }\r"
    electricAlias-def C if      "if ()\r  {\r    \r  }\r"
    electricAlias-def C elseif  "\b\b}\r\b\b\b\belse if ()\r\b\b{\r"
    electricAlias-def C else    "\b\b}\r\b\b\b\belse\r\b\b{\r"

    Now MYFILE.C would look like this:
    
    +-------------------
    | MYFILE.C
    +-------------------
    |while (i < 5)
    |  {
    |    if (*c != 0)
    |      {
    |        a = 1;
    |      }
    |    else
    |      {
    |        a = 2;
    |      }
    |   
    |  }
    +-------------------

####################
3.11.4 - QUICK START
####################

'electricAlias' is a general-purpose Tcl package that provides a 
flexible way to automate entering repetitive text. This text can be as 
simple as the current date, or can be a template containing many entry 
points where additional data is added. In this case, 'electricAlias' 
inserts the boilerplate and provides a convenient way to jump between 
entry points. Using electricAlias is as simple as typing a key word and 
hitting the tab key. 

    The following instructions will get you up and running ASAP. You will
    have three new bindings: 
    *1. <Meta-Space> will be bound to 'electricAlias-insert' and 
    *2. <control-tab> will be bound to 'nextStop', which jumps you to the 
       next entry point in the current aliased text.
    *3. <control-shift-j> is bound to 
       'prevStop', which jumps you to the previous entry point. 

    To use, simply place this file place in a folder named 
    $HOME:Tcl:ElectricAlias: and append:

            'source $HOME:Tcl:ElectricAlias:electricAlias.tcl' 

    to AlphaBits.tcl. Also create a folder named 
    $HOME:Tcl:ElectricAlias:Aliases and make sure to place at least a file 
    named 'Aliases' in it with your default aliases. If you wish to use the
    language extensions feature, place respective files 'Aliases.Tcl', 
    'Aliases.C', etc.. there as well. 

    To invoke in the current session you may manually source/load
    it yourself; otherwise, quit and relaunch Alpha.

    Now go read about TEMPLATES below and examine the aliases files
    to understand how it all fits together.

#########################
3.11.5 - PROCEDURE SYNTAX
#########################

    electricAlias-insert

      Invokes alias template insertion.  Text is scanned from
      the current cursor position to the beginning of the line.
      If the non-whitespace text immediately adjacent has an
      alias entry, then template insertion proceeds.

    electricAlias-idefine

      An interactive mode to define aliases.  Crude.

    electricAlias-def MODE NAME ?DEFINITION?

      Defines or displays an alias template.  If DEFINITION
      is omitted and the alias exists, then the current
      definition is returned per TCL 'return'.
      
      Aliases may have embedded variables, TCL commands, stops,
      line-ends and deletes as described under TEMPLATES below.

      If MODE begins with a bullet (), then the alias is only effective
      when used as the first token on a line.

    electricAlias-undefine MODE NAME

      Undefines entry for alias MODE and NAME

    electricAlias-exists MODE NAME

      Returns 1 if alias NAME exists; otherwise 0.

    electricAlias-list ?MODE?

      Inserts a sorted list of current definitions.
      Specifying a MODE will restrict the returned list to
      that mode.
  
      List may be used in another TCL.  Uses getalias
      proc.

    electricAlias-mode ?NAME?

      Sets the current alias mode.  This is used to determine
      which alias to use in a given situation.  Leading bullet (),
      if any, is removed.  This forces use of the MODE field when
      defining aliases that must occur as the first token of a line.
      
      If the NAME is missing, then the current mode is returned.

    electricAlias-names ?MODE?

      Returns a list of currently defined alias names.
      Specifying a MODE will restrict the returned list to
      that mode.

    electricAlias-off

      Turns electricAlias off

    electricAlias-on

      Turns electricAlias on

    electricAlias-iundefine

      An interactive mode to remove aliases.  Crude.

    electricAlias-removeall ?MODE?

      Removes all alias definitions and variables
      Specifying a MODE will restrict the returned list to
      that mode.

    electricAlias-var MODE NAME ?DEFINITION?

      Defines an alias variable for use in templates.  If the pattern
      {NAME} is found during template insertion, it is replaced with
      the DEFINITION.  This allows a single template to have multiple
      uses.
      
      If the DEFINITION is omitted, then the current definition
      is returned.

    electricAlias-version
    
      Returns the current version info.


############################################################
3.11.6 - Copyright original des electric_alias (avant modif)
############################################################


    Copyright  1993 by David C. Black
    All rights reserved.

AUTHOR
    
    David C. Black
    Internet: black@mpd.tandem.com
    GEnie:    D.C.BLACK
    USnail:   6217 John Chisum Lane, Austin, Tx 78749-1838


###########################################
3.11.7 - Les alias lectriques et les modes
###########################################

  Les electric alias utilisateur sont dfinis dans 
  le fichier ~/.tk/stead/<nom_de_mode>-mode-user.tcl.

  Les electric alias systemes sont dans 
  STEAD/tclLib/jeditmodes/<nom_de_mode>-mode.tcl,

###############################################
3.11.8 - Indentation dans les alias lectriques
###############################################

  Pour les modes verilog, C, csh, Pascal et tcl, les alias inserent automatique-
  ment la chaine d'indentation definie par les preferences utilisateur a la 
  place de la tabulation des version prcdente.
     
###########################################  
3.11.9 - L'annulation des alias lectriques
###########################################

CONVENTION POUR le UNDO et les electyric ALIAS :

   *1 - electric Alias utiliss comme abbrviations :
   
     EXEMPLE EN TCL :
     si on tape if<meta-space>, on obtient :
                if {} {
                        
                }
     si on fait Undo : on obtient
                if 
                  ^--espace
                  
   *2 - insertion d'un mot cle par le menu :
    
     EXEMPLE EN TCL :
     choix : templates/if, on obtient :
                if {} {
                        
                }
     si on fait Undo, l'ensemble de la commande insre s'efface
     
   *3 - wrap de la selection     
   
     EXEMPLE EN LATEX :
     choix : blabla selectionn puis templates/section/part
     resultat : \part{blabla}
     
     premier undo : on obtient : \part{} (la selection est remplacee)
     deuxieme undo : on obtient : blabla
     On a donc un undo intermediaire qui permet le remplacement de la selection
     au lieu du wrap....


     
############################
############################
3.12 - Utilisation des modes
############################
############################

Sujet :
    gestion generale des modes (changer de mode et comment utiliser les 
    diffrents modes existants SANS PARLER DE CONFIGURATION DU MODE)  

###########################
3.12.1 - Changement de mode
###########################

Un bouton en bas droite de l'diteur permet de changer de mode. A la lecture 
d'un fichier, TE dtermine son mode par l'extension du fichier (.c => mode C
par exemple) ou par la premire ligne du texte qui contient pour certains 
langages le nom de l'interprteur. 


##############################################
3.12.2 - Fonctionnalit de base pour les modes
##############################################

3.12.2.1 - La navigation
^^^^^^^^^^^^^^^^^^^^^^^^

 Le bouton de navigation pour les modes Tcl, Latex, C, Verilog, Csh, Pascal
 permet de naviguer dans le fichier suivant :
   - les procdures pour Tcl,
   - les parties, chapitres sections, sous-sections, etc... pour Latex,
   - les fonctions pour C,
   - les procdures et fonctions pour Pascal,
   - les modules pour Verilog
 
 Ce bouton est situ en haut  droite dans la barre de menu. Il ouvre une 
 fentre dans laquelle sont affichs les noms des lments de navigation
 dfinis ci-dessus. Un click sur un de ces lments provoque dans le texte
 le dplacement du curseur vers la zone correspondante ainsi qu'un surlignage
 provisoire por faciliter le reprage.
 
 Lorsqu'on dsire rinitialiser la liste des lments (aprs la modification
 du texte), il suffit d'actionner le bouton rescan situ dans la fentre de
 navigation.  
 
 
3.12.2.2 - Le prfixe
^^^^^^^^^^^^^^^^^^^^^

 Il est positionn en fonction du mode (exemple # pour tcl , % pour latex). 
 Il correspond au signe de mise en commentaire pour le langage considr. 

3.12.2.3 - Le menu portant le nom du mode 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ce menu est cens contenir l'ensemble des fonctionnalits particulire au mode
courant.
De plus chacun de possde les quatres commandes suivantes :
 
 Show System Mode Config : visualise le fichier systeme de configuration des 
                           modes <nom-de-mode>-mode.tcl
 Create New mode Config  : dite le fichier <nom-de-mode>-mode.tcl dans le
                           rpetoire utilisateur en vue de remplacer le
                           fichier systme
 Customize Mode Config   : dite le fichier <nom-de-mode>-mode-user.tcl dans 
                           le rpertoire utilisteur (.tk/stead). pour ajouter
                           des fonctionnalits aux modes
 Apply Mode Config 
 Changes                 : Charger la configuration aprs avoir modifier les 
                           fichiers prcdents.

#######################################
3.12.3 - Description des modes standards
#######################################

3.12.3.1 - Mode Tcl 
^^^^^^^^^^^^^^^^^^^

  Search Proc :           Recherche dans le texte la dclaration de la
                          procdure slectionne. Si la procdure n'est
                          pas trouve dans le texte, le fichier dans lequel
                          elle se trouve (s'il est trouv par tcl) est ouvert
                          et la procdure est slectionne.
                         
  Colorize Proc :         Colorie les noms de procdures dans tous le fichier
  Colorize Comments :     Colorie les commentaires dans tout le fichier    
  Clear Proc Colour :     Efface les couleurs des noms de procdures
  Clear Comments Colour : Efface les couleurs des commentaires
    
3.12.3.2 - Mode LateX
^^^^^^^^^^^^^^^^^^^^^

  latex File :        lance la comamnde latex sur le fichier  analyser
                      Donne un shell pour le compilation interactive.
                      Affiche le fichier .log rsultant, ce qui permet la
                      correction des erreurs aprs la compilation.
                      
  xdvi  File :        lance la commande xdvi sur le fichier rsultant de la 
                      commande prcdente
  dvips File :        lance la commande dvips sur le fichier .dvi rsultant 
                      de la commande latex. Affiche le rsultat.
  ghostview File :    lance la commande de prvisualisation ghostview sur
                      le fichier .ps rsultant de la commande prcdente.
  File to process...: Change le fichier a compiler (par defaut: fichier dit)
  xdvi selection :    lance la commande latex sur la slection, donne un
                      shell pour l'interactivit. Affiche le rsultat de la
                      compilation. et prvisualise avec xdvi.
                      Les enttes et fin de compilation sont prdfinies 
                      (variables globales LATEX_ENTETE et LATEX_FIN) et
                      peuvent tre redfinies parl'utilisateru dans son 
                      fichier steadrc ou latex-mode-user.tcl.
  ghostview 
  selection :         identique  la prcdente mais lance en plus dvips
                      et ghostview. Utile pout prvisualiser des figures.
                      
  Show Label :        ce "CheckButton" permet d'inclure s'il est valid
                      les labels aux lments de navigation normalement 
                      limits aux parties, chapitres, sections et 
                      sous-sections.
                      
  Colorize Sections : Colorie dans le texte tous les lments de navigations
                      rencontrs.
                      
  Clear Sections 
  Color             : Efface dans le texte la couleur des lments de 
                      navigation
                        
 PREVISUALISATION :
 
  les variables globales de prambule et de fin pour la
  pr-visualisation de la slection s'appellent LATEX_ENTETE et
  LATEX_FIN.
  pour les modifier editez votre fichier .tk/sead/latex-mode-user.tcl
  et placez-y les commandes suivantes (par exemple)

  # entete pour la previsualisation
  
  global LATEX_ENTETE
  set LATEX_ENTETE {\documentstyle[epsf]{article}
  \begin{document}
  }
  
  # fin du fichier pour la prvisualisation
  
  global LATEX_FIN
  set LATEX_FIN {
  \end{document}
  }
             
 NAVIGATION :
 
  l'affichage des labels au sein des section est facultatif. (voir menu
  Latex/show label)
  les sections sont numrotes automatiquement  partir de la premire 
  rencontre dans le fichier (ce qui videmment ne correspond pas forcment
   la numrotation finale de votre document)
                   
3.12.3.3 - Mode Verilog
^^^^^^^^^^^^^^^^^^^^^^^

  Colorize Modules :      Colorie les modules dans le texte entier
  Colorize Comments   :   Colorie les commentaires dans le texte entier
  Clear Modules Colour :  Efface les couleurs des noms de modules
  Clear Comments Colour : Efface les couleurs des commentaires
    
3.12.3.4 - Mode Pascal
^^^^^^^^^^^^^^^^^^^^^^
 
  Colorize procedures :         Colorie les procdures et les fonctions dans 
                                le texte entier
  Clear Procedures Colour :     Efface les couleurs des noms de procedures

3.12.3.4 - Mode C
^^^^^^^^^^^^^^^^^
  
  Colorize Functions :     Colorie les fonctions dans le texte entier
  Colorize Comments   :    Colorie les commentaires dans le texte entier
  Clear Functions Colour : Efface les couleurs des noms de fonctions
  Clear Comments Colour :  Efface les couleurs des commentaires
  
                             
##########################
3.12.4 - Le menu Templates
##########################
  
  Pour les modes Pascal, Tcl, Latex, Verilog et csh : il s'agit de la liste
  des instructions du langage. le choix de l'une d'elle insre l'instruction
  ainsi que sa structure (champs) au point d'insertion. 
  On peut naviguer a travers les champs par <Control-Tabulation>.
  Il s'agit du mcanisme d'lectric Alias de alpha.
  En prsence de la slection certains "templates" ne l'crasent pas mais
  la positionne dans l'un de leur champs.
  
  Il est en outre possible d'accder  ces templates par des alias au clavier.     Pour cela, consultez le fichier systme o ces alias sont dclars. Pour
  cela fiare "Show System Mode Config" dans le menu <nom-de-mode>
  
  la dfinition d'un alias est de la forme :
  electricAlias-def <nom-du-mode> <alias> <definition>
    
###########################################################################
###########################################################################
###########################################################################

4 - Aller plus loin : personnalisation et programmation en Tcl

###########################################################################
###########################################################################
###########################################################################

    
####################################################
####################################################
4.1 - Configurer son diteur avec le fichier steadrc
####################################################
####################################################

Le fichier steadrc situ dans le rpertoire ~/.tk/stead (variable USER_DIR) 
est le fichier de configuration utilisateur, lu chaque fois qu'un nouvel 
diteur est dmarr. Des menus ou des procdures propres  l'utilisateur 
peuvent tre dclarees dans ce fichier au sein d'une procdure nomme
jedit:userhook.
On peut aussi y dfinir les prfrences utilisateur que l'on souhaite
pour l'diteur (voir "Les prfrences utilisateur"). 

Pour l'diter utilisez "edit User file" dans le menu Config et 
aprs l'avoir sauvegard, utilisez "reread User file " dans le 
mme menu, cela relance la procdure jedit:userhook.

Lorsqu'on fait "edit User file" et que le fichier n'existe pas
ou est vide, STEAD en propose un par dfaut. 
Ce steadrc rajoute un menu de votre nom vous permettant d'editer quelques
fichiers essentiels, de mettre en couleur le fond et l'encre du texte
slectionn, de mettre en gras le texte ...

#############################################################
4.1.1 - Modification du fichier utilisateur principal steadrc
#############################################################

Rajouter un electric_alias valable que dans un mode donn dans le FICHIER 
PRINCIPAL de l'utilisateur  ~/.tk/stead/steadrc.
En effet, plusieurs alias de meme nom peuvent etre definis dans le 
meme fichier mais ne seront valids que pour des modes diffrents. ou 
encore, un alias peut etre dfini comme etant valid pour tout mode.

On peut toujours regrouper tous les alias dans un fichier separ puis
rajouter la commande suivante dans le fichier ~/.tk/stead/steadrc :
    source NOM_DU_FICHIER
    
On peut galement (toujours dans le fichier steadrc) excuter des 
commandes (crer un nouveau menu,...) qui si le fichier en cours 
d'dition satisfait certains critres particuliers
   

##############################
##############################
4.2 - Fonctionnement des modes
##############################
##############################

######################################
4.2.1 - Selection du mode au lancement
######################################

Les variables gnrales concernes par les modes sont les suivantes

TE_MODE_DIR : nom du rpertoire o se trouvent les fichiers systmes
              grant les modes (STEAD/lib/jeditmodes)
MODE :        nom du mode courant

Le choix du mode est dfini par la variable globale MODE (valeurs possibles 
listes dans le popup en bas  droite).
Cette variable peut etre affecte de diffrentes faons (priorit 
dcroissante) :

    - directement sur la ligne de commande (***prioritaire***) :
          stead -mode c++  fichier.c
          
    - par la procdure utilisateur "te:mode:set_hook {filename}"
      si celle-ci existe (dfinie dans le fichier ~/.tk/stead/steadrc)
      exemple :
      
      proc te:mode:set_hook f {
          global MODE
          if [string match *.asm $f] {set MODE asmTMS; return 1}
          if [string match *.s $f] {set MODE asmTMS; return 1}
          return 0
      }
      Si la procdure retourne 0, le processus de recherche automatique du 
      mode est poursuivi.
    
    - par la procdure "jedit:guess_mode" (dans fichier stead)
      C'est la faon automatique standard du choix du mode au lancement.
      c'est elle qui appelle la procedure utilisateur te:mode:set_hook.
      Si MODE n'est toujours par dfinie, elle effectue les essais suivants
      (dans l'ordre) :
       - examen du nom du fichier (grace  la liste de liste FILE_MODES)
       - examen de la premire ligne du fichier pour dtecter un interpreteur :
         #!/usr/local/bin/wish
         (utilisation de la variable LINE_MODES)
       - si le mode est sh : on verifie qu'un autre shell n'est pas utilis
         en regardant la troisime ligne du fichier
       - par dfaut, on choisi le mode plain
    
    - Si vous n'tes pas satisfait, vous pouvez revoir entirement le 
      choix du mode en redfinissant la procdure jedit:guess_mode
      
    -  tout moment, vous pouvez changer le mode manuellement par 
      le popup en bas  droite.
    
La variable MODE est affecte automatiquement en fonction du nom du fichier
depuis la procdure jedit:guess_mode (script stead).

Le choix automatique d'un mode est fait par la procedure jedit:set_mode
excute au lancement de STEAD (script stead) et lorsqu'on charge un fichier
(procdure jedit:cmd:load dans file.tcl)

########################################
4.2.2 - Fonctionnement gnral des modes    
########################################

Une fois le choix du mode fait et la variable MODE affecte, la procdure 
jedit:set:mode (dans stead) est appele.
La procdure jedit:mode:cleanup est ensuite invoque. Cette procdure, 
dclare par le mode prcdent est cense dtruire tout ce qui avait t
apport par ce mode.

Puis un ou deux fichiers spcifiques  ce mode peuvent etre lus.

Tout d'abord, l'diteur teste si il existe un fichier chez l'utilisateur 
(dans ~/.tk/stead/) du nom <nom_de_mode>-mode.tcl.

Si c'est le cas, seul ce fichier est excut.
Ce fichier peut tre cr par l'utilisateur par l'intermdiare du menu
<nom-de-mode>/Create New Mode Config

Sinon, alors un fichier systme par defaut de mme nom, situ dans le
rperoire $TE_MODE_DIR, est excut.
Ce fichier (transparent pour l'utilisateur non dsireux de changer 
l'ensemble des fonctionnalits du mode) dfinit les menus, commandes, 
raccourcis clavier lis au mode choisi. On peut le lire dans le menu 
<nom-de-mode>/Show Mode Config

un deuxime fichier <nom-de-mode>-mode-user.tcl est lu DANS LE REPERTOIRE 
UTILISATEUR ~/.tk/stead s'il existe , APRES LE FICHIER PRECEDENT. Il 
permet l'utilisateur de conserver les fonctionnalits des modes "systmes" 
en rajoutant ou crasant des fonctionnalits et/ou des abbrviations => 
PLACEZ VOS ABBREVIATIONS PERSONNELLES LIEES A UN MODE DANS CE FICHIER. 
(ex en mode latex ~/.tk/stead/latex-mode-user.tcl) 
Ce fichier est accessible par le menu <nom-de-mode>/Customize Mode

  
  
Et maintenant les differentes possibilit (du plus simple au plus complexe) :
 
################################################################
4.2.4 - Crer le fichier utilisateur <nom-de-mode>-mode-user.tcl
###############################################################
 
dans son rpertoire personnel (utiliser le menu "<nom-de-mode>/Customize Mode")
pour complter/modifier le mode par dfaut
attention, le fichier <nom-de-mode>-mode-user.tcl est plac dans le
rpertoire ~/.tk/stead qui sera cr s'il n'existe pas.

#####################################################
4.2.5 - Maitriser entierement le comportement du mode
##################################################### 
Recopier chez soi (dans ~/.tk/stead/) le fichier systme du mode considr 
<nom_de_mode>-mode.tcl.
utiliser le menu Mode/Create New Mode Config
Le rpertoire .tk/stead sera cr s'il n'existe pas.


################################################
4.2.6 - Procedures permettant d'enrichir un mode
################################################

voici les arguments de toutes les procedures 'hook' dont on dispose :

  jedit:pre_read_hook {filename widget}
  jedit:mode_read_proc {filename widget} 
  jedit:post_read_hook {filename widget}
  
  jedit:pre_write_hook {filename widget}
  jedit:mode_write_proc {filename widget}
  jedit:post_write_hook {filename widget}
          
  jedit:pre_quit_hook {widget}
  
  jedit:pre_spacebar_hook {widget}
  jedit:mode_spacebar_proc {widget}
  jedit:post_spacebar_hook {widget}
  
  jedit:pre_tabkey_hook {widget}
  jedit:mode_tabkey_proc {widget}
  jedit:post_tabkey_hook {widget}
  
  jedit:pre_returnkey_hook {widget}
  jedit:mode_returnkey_proc {widget}
  jedit:post_returnkey_hook {widget}
  
  jedit:pre_paste_hook {widget}
  jedit:post_paste_hook {widget}
  
  jedit:pre_xpaste_hook {widget}
  jedit:post_xpaste_hook {widget}
  
  te:mode:navig_label_hook {string}
  te:mode:navig_sort_hook {list}
  te:mode:rescan_hook {}
  te:mode:set_hook {filename}  (affecte MODE en fonction de $filename)


  te:mode:rescan_hook
    procedure executee a chaque fois qu'on effectue un rescan pour la 
    navigation
  te:mode:navig_label_hook : 
    fonction definissant ce qui apparait dans la fenetre de navigation
    (ces deux procedures permettent de faire un mode plan avec
    numerotation et indentation) 
  te:mode:navig_sort_hook : 
    comment trier les elements de navigation (par defaut : ordre dans
    le texte) 

#######################################
4.2.7 - Methodes de coloration du texte
#######################################

Pour chaque mode, il est possible de specifier colorier certaines 
parties d'un texte. Par exemple, dans le mode TCL il est possible 
de colorier en vert les commentaires et les mots clefs du language 
en bleue. Dans stead 2 principes de coloration ont ete implante :
     1) Le mode de coloration globale :
        Il permet de colorier un morceau de texte sur plusieurs lignes. 
        Par exemple les commentaires en language C, commence par "/*" 
        et finnissent par "*/". Ils peuvent s'etendre sur plusieurs 
        lignes. 
        La commande "te:cmd:colorise comment all $commentRegExp" permet 
        de colorier un pattern $commentRegExp dnas tout le fichier 
        "all", dont le nom est comment. Pour rafraichir, les couleurs 
        il faut donc effectuer une coloration de chaque pattern.
        Pour decolorer le pattern "comment" dnas tout le fichier, 
        on utilise la commande :
            "jedit:colours:clear_foreground all comment"
        Il faut specifier a stead tous les patterns, leur noms et 
        l'ordre de coloration de ces patterns. Les tableaux HILIGHT_STRING 
        et HILIGHT_COLOR permettent de memoriser respectivement une 
        chaine reguliere associe a un pattern a colorier et la couleur 
        de ce pattern. La liste HILIGHT_LIST permet de memoriser l'ordre 
        de coloration des patterns. Ex :
            set HILIGHT_LIST ""
            lappend HILIGHT_LIST comment
            set HILIGHT_STRING(comment) "\[ \t\]*#\[^\n\]*"
            set HILIGHT_COLOR(comment) green
        Les commentaires TCL seront donc ici colorier en vert.
     2) Le mode de coloration "ligne par ligne"
        Il permet de colorier un morceau de texte sur une ligne. Par 
        cette methode un commentaire C ne sera donc pas repere.
        On definit une variable MODECOLOR qui contiendra une association
        entre un pattern, son type (simple pour un pattern reconnaissable
        sur une ligne, complexe pour un pattern reconnaissable sur 
        plusieurs lignes), son nom symbolique, et enfin sa couleur. 
        Par exemple, on ecrira :
            set MODECOLOR($MODE,colorList) \
            " { simple commentaire $commentaireRegExp {Script TCL}} \
              { complexe commentaireComplexe A SPECIFIER...} "
        Pour indiquer que les commentaires de nom symbolique "commentaire"
        seront reconnaissable par l'expression reguliere $commentaireRegExp.
        Pour chaque, commentaire trouve TCL ajoutera le tag 
        "foreground:commentaire" au commentaire du texte. Pour chaque 
        type "tagge" TCL executera le script "{Script TCL}" specifie 
        dans MODECOLOR.
        Par exemple, pour specifier un commentaire TCL sur une ligne 
        on ecrira : 
            set commentRegExp {"(^|;)\[ \t\]*#\[^\n]*$"}
            set MODECOLOR($MODE,colorList) " \
            {simple commentaire $commentRegExp {-foreground #060}}"
        Ensuite, la ligne de commande suivante permet de colorier 
        un morceau de texte dans le widget texte .main.t, avec les 
        specification de couleurs indique dans MODECOLOR($MODE,colorList) :
            te:cmd:coloriseStruct .main.t $MODECOLOR($MODE,colorList) what
        Si what vaut :
            * all : On colore tout le texte avec tous les patterns 
              coder dans MODECOLOR($MODE,colorList),
            * currentLine : On colore seulement la ligne courante,
            * screen : On colore seulement la partie du texte visible 
              a l'ecran.
         Pour decolorier un texte, on utilise la procedure 
             "te:colours:clear_foregroundStruc .main.t all commentaire"
         qui supprimera la couleur des commentaires dans tout le fichier.
         L'avantage de cette methode est que :
             1) la coloration se fait en tache de fond
             2) la specification des chaines regulieres est + simple
             3) la partie du texte affichee a l'ecran est colorier 
                en temps reel..
         
Il doit etre possible de melanger les 2 modes de colorations. Mais
cela engnedrera peut etre un baisse des performances lors de la coloration.

#############################
4.2.8 - crer un nouveau mode
#############################

Dans le fichier principal stead, il faut :
- ajouter les nom symbolique du mode dans la liste MODE_LIST definie
   dans la procedure jedit:init
- completer la liste FILE_MODES (mais procedure) pour indiquer a stead
  par quel suffixe reconnaitre le mode
- eventuellement completer la liste LINE_MODES qui permeta STEAD (en 
  cas d'echec avec les indications precedentes) de trouver le mode
  d'apres la premiere ligne du fichier.
  
Pour en savoir plus voir aussi le fichier "fonctionnement de l'editeur"
dans le menu help.

###################
###################
4.3 - le menu admin
###################
###################
  
  edit tclindex file : edite le tclIndex du rpertoire STEAD/tclLib
  
  Show Globals : liste de toutes les variables globales
  
  Show procedure : ouvre un fichier contenant toutes les procedures.
  
    Remarque : pour l'instant le fichier s'appelle procsiiii.tcl est est 
    cree dans le repertoire TE_USER_DIR (~/.tk/stead) et N'EST PAS DETRUIT
    On peut ameliorer cela en permettant de lancer Stead avec une 
    option -string qui remplirait l'editeur sans creer de fichier...

  
###########################################################################
###########################################################################
###########################################################################

5 - Manuel d'installation sur un nouveau site

###########################################################################
###########################################################################
###########################################################################


Voir Menu help/stead-lisez-moi


########################################################################
########################################################################
########################################################################
(Pense-bte pour moi)

exptraction du sommaire de ce document
exec egrep {^[0-9]+(\.[0-9]*)?[^\)\.]} userguide.txt

exec egrep {(^[0-9]+|^[0-9]+\.[0-9]*) - } userguide.txt
