###########################################################################
# 
# Cette doc est perimee (mais néammoins utile :-) !
# 
###########################################################################

      Quelques Astuces pour Utiliser stead au mieux
		
*******************************************************************************
Insérer des caractères huit bits à l'aide des touches de fonction :
Rajouter dans votre fichier ~/.tk/stead/steadrc
les ligne suivantes :
bind .main.t <F1> {ins \x61}         ;# "a"
bind .main.t <Shift-F1> {ins \x41}   ;# "A"
trouver les bonnes valeurs pour 
    éèêëàâîïùûôç
    ÉÈÊËÀÂÎÏÙÛÔÇ
                                
*******************************************************************************

                        LE UNDO ET LA PERFORMANCE

Si les performances de TE sont trop ralenties, on peut inhiber le undo (utiliser
"disable undo" dans le menu Edit) ou liberer la memoire des undo ("clear undo
memory")
(par exemple avant de faire une recherche/remplacement sur
un fichier de plusieurs méga) 

*******************************************************************************

                        INDENTATION DE LA SELECTION

L'indentation effectue un traitement assez lourd sur les tabulations
(par exemple une indentation de 1 espace peut obliger à la conversion
des caracteres <Tab> en >space> en fonction des preferences.
Aussi,refuse-t-elle de fonctionner si la selection est trop 
importante : selectionnez moins de 300 lignes a la fois pour les indenter

*******************************************************************************

			BALANCE et PERFORMANCE

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

*******************************************************************************

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


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

    pour inserer le résultat 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\]"


2 - Pour remplacer rapidement les caracteres CR (fin de ligne Mac) 
    par LF (Fin de ligne UNIX)

    Menu "PIPE/Unix Pipe through..." et taper "tr \015 \012"

*******************************************************************************

                  ASTUCES UTILISANT LA RECHERCHE REMPLACEMENT
                  -------------------------------------------

  Probleme : 
  ^^^^^^^^^^
  
  Comment supprimer une grande zone de texte mal définie, par exemple pour 
  supprimer les 12 premières 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-caracteres 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"

  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Probleme : 
  ^^^^^^^^^^
  
  Comment supprimer les pages 2 à 108 d'un fichier postscript (latex)
  d'une thèse qu'on avait "presque' fini d'imprimer...
  
  Solution  :
  ^^^^^^^^^^^
  
  - vérifier que le format des pages est bien de la forme :
    
    %%Page: 109 121
    avec :
    - 109 = numéro de la page réellement indiqué sur la feuille imprimée
    - 121 = numéro d'ordre de la page du fichier
    
  - repérer les deux pages de début et de fin du texte dont l'impression 
    a réussi (s'aider en recherchant du texte réellement imprimé sur 
    la page)
    
      - chercher la chaine "%%Page: 2 " pour voir si la page 2
        correspond bien à la première ou dernière page imprimée. 
     
      - chercher la chaine "%%Page: 109 " pour voir si la page 109
        correspond bien à la première ou dernière page imprimée. 
 
   - On peut alors recherche la chaine régulière :
        "%%Page: 2 2\n.*%%Page: 109 121\n"
     et la remplacer par :
         %%Page: 109 121\n
     
     
     à l'aide de la commande suivante (menu "File/Issue TCL Command")
         
    
    
     ra "%%Page: 2 2\n.*(%%Page: 109 121\n)" {\1}
                      ||                      ^^ représente l'expression 
                      ||                         parenthésée précédente
                      ||
                      ^^  ==> ces deux meta-caracteres representent 
                              une chaine quelconque
     
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   
   Problème : 
   ^^^^^^^^^^
   supprimer les lignes ajoutée par l'assembleur GNU.
   Elle sont due la forme :
   ---
   \x0c68K GAS  POPO.s 			page 1
   
   
   ---
   sauf pour la première ligne où le caractere "\x0c" n'existe pas.
   
   Solution :
   ^^^^^^^^^^
   Utiliser la commande "ra" (pour Replace All) :
   
      ra "\[^\n\]?68K GAS\[^\n\]+\n\n\n" ""
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   
   Problème : 
   remplacer toutes chaine de la forme : \verb|qqchose|
   par des chaine du type : \cmd{qqchose}
   Solution :
   Recherche (regexp global ou by-line) : \\verb\|([^|]+)\|
   remplacer par : \cmd{\1}

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Problème :  Supprimer les espaces en fin de ligne dans tout le fichier
   Solution :
          ra " +\n" \n
   ou pour tenir compte des tabulations :
          ra "\[ \t\]+\n" \n

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Problème :  remplacer les multiples espaces par un seul sauf en 
               début de ligne
   Solution :
          ra "(\[^ \t\n\r\])\[ \t\]+"  {\1 }

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Problème :  remplacer    <a name=todo> 
               ou           <A name="todo"  </a> 
               par :   <a name="todo"</a>
   Solution :
          remplacer : <[aA] +name *= *"?([a-zA-Z0-9-_]*)"? *>( *</a>)?
          par :       <a name="\1"></a>

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

########################################################################
                  Utilisation de la ligne de commande TCL
                  ---------------------------------------
Pour remplacer dans tout un document un morceau de texte (de plusieurs lignes)
par un autre :

<Meta-T> ou menu "File/Issue TCL command..."

selectionner le texte initial (a la souris)
Mémoriser la selection dans t1 en tapant
    set t1 $S

selectionner le texte de remplacement
Mémoriser la selection dans t2 en tapant
    set t2 $S
    
Puis effectuer le remplacement par (voir REMARQUE CI-DESSOUS)
    ra $t1 $t2
    
REMARQUE : la procédure ra actuelle travaille avec des chaines régulière :
attention si le chaine t1 contient des meta-caracteres


########################################################################
Faire des calcule dans stead

Utiliser le menu "Extra" . S'il est absent : l'appeler dans le menu 
"Config/Make Extra Menu"

    Attention : pour l'instant la partie décimale est
    définie en utilisant le point et non pas la vigule !! 


Sélectionner un ensemble de nombres (même avec la sélection 
rectangulaire), puis :

- Menu "Extra/Addistion Selection" pour accumuler tous les
  nombre contenus dans la sélection.

- <Escape-k> permet de calculer l'expression sélectionnée (voir
  la doc de la commande expr de tcl)

Autre solution 
Si vous devez manipuler plusieurs fois la sélection,
Utiliser la ligne de commande (faire plusieurs moyennes sur 15 
notes) :

    tcl> expr [stringSum $S]/15.0
############################################################
