Prise de contact avec GNU Emacs : Différence entre versions

De Wicri Manuel
imported>Jacques Ducloy
(Un premier exercice)
imported>Jacques Ducloy
m (36 révisions importées)
 
(16 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
'''GNU Emacs''' est l'une des versions les plus populaires de l'éditeur de texte [[Emacs]]. Ce tutoriel est dédié à son usage depuis un ordinateur personnel (sous Windows ou Max OS X) pour des opérations de [[Wicrification]].
+
[[File:Emacs.png|right|300px|thumb|Fenêtre GNU Emacs à l'ouverture]]
 +
'''GNU Emacs''' est l'une des versions les plus populaires de l'éditeur de texte [[Emacs]]. Ce tutoriel est dédié à introduire son usage depuis un ordinateur personnel (sous Windows ou Max OS X) pour des opérations de [[Wicrification]].
  
Pour en savoir plus sur GNU Emacs, voir la page correspondante sur [[wicri-informatique.fr:GNU Emacs|Wicri/Informatique]].
+
Pour :
 +
* '''télécharger''' GNU Emacs, voir sur le wiki [[wicri-outils.fr:GNU Emacs#Téléchargements|Wicri/Outils]].
 +
* '''en savoir plus''' sur GNU Emacs, voir la page correspondante sur [[wicri-informatique.fr:GNU Emacs|Wicri/Informatique]].
  
Pour télécharger GNU Emacs, voir sur le wiki [[wicri-outils.fr:GNU Emacs#Téléchargements|Wicri/Outils]].
+
==Barre de menus et commandes==
  
==Barre de menus et commandes==
 
[[File:Emacs.png|right|300px|thumb|Fenêtre GNU Emacs à l'ouverture]]
 
 
L'éditeur Emacs se manipule généralement à l'aide de commandes utilisant des touches de contrôle. La barre de menu permet un apprentissage progressif d'une partie de ces commandes.
 
L'éditeur Emacs se manipule généralement à l'aide de commandes utilisant des touches de contrôle. La barre de menu permet un apprentissage progressif d'une partie de ces commandes.
  
 
===Les commandes avec la touche Control===
 
===Les commandes avec la touche Control===
  
Par exemple l'onglet '''File''' donne accès à une liste de commandes dont certaines sont accompagnées de codes équivalents. Par exemple la fin du menu associé à l'onglet File contient :
+
Sur la barre de menu, l'onglet '''File''' donne accès à une liste de commandes dont certaines sont accompagnées de codes équivalents. Par exemple, la fin du menu, qui est associé à l'onglet File, contient :
 
: Quit <code>(C-x C-c)</code>
 
: Quit <code>(C-x C-c)</code>
  
Ligne 20 : Ligne 21 :
 
: {{Touches|Ctrl|c}}
 
: {{Touches|Ctrl|c}}
  
==Les commandes avec la touche Méta==
+
===Les commandes avec la touche Méta===
  
 
Emacs utilise également la touche dite '''Méta''' pour des combinaisons de touches. La notation <code>M-<nowiki><</nowiki></code> signifie qu'il faut utiliser la combinaison de touches {{Touches|Alt|<}} pour positionner le curseur en début de texte à éditer (en haut à droite).
 
Emacs utilise également la touche dite '''Méta''' pour des combinaisons de touches. La notation <code>M-<nowiki><</nowiki></code> signifie qu'il faut utiliser la combinaison de touches {{Touches|Alt|<}} pour positionner le curseur en début de texte à éditer (en haut à droite).
Ligne 27 : Ligne 28 :
 
* Sous windows, il faut utiliser {{Touches|Alt|<}}
 
* Sous windows, il faut utiliser {{Touches|Alt|<}}
 
* Sous Mac OS X, il faut utiliser {{Touches|Opt|<}}
 
* Sous Mac OS X, il faut utiliser {{Touches|Opt|<}}
* Dans tous les cas on peut utiliser la séquence {{Touche|Escape}} {{Touche|<}} (attention, dans ce cas, activer les touches de façon consécutive et non simultanée)
+
* Dans tous les cas, on peut utiliser la séquence {{Touche|Escape}} {{Touche|<}} (attention, dans ce cas, activer les touches de façon consécutive et non simultanée)
  
==Le buffer ''* scratch *''==
+
===Le buffer ''* scratch *''===
 
Emacs utilise un ensemble de Buffers pour gérer les textes en cours d'édition. L'un d'eux est disponible pour des opérations ponctuelles. Son nom est '''<code>* scratch *</code>'''. Ce buffer va nous servir pour de premiers exercices.
 
Emacs utilise un ensemble de Buffers pour gérer les textes en cours d'édition. L'un d'eux est disponible pour des opérations ponctuelles. Son nom est '''<code>* scratch *</code>'''. Ce buffer va nous servir pour de premiers exercices.
  
Ligne 43 : Ligne 44 :
 
* RENÉ TERRIER
 
* RENÉ TERRIER
 
</source>
 
</source>
On va notamment utiliser la commande Emacs <code>M-l</code> ou {{Touche|Esc}}{{Touche|l}} qui convertit la suite d'une chaîne de lettres en minuscules. La signification mnémotechnique du « l » de <code>M-l</code> est ''lower case''.
+
On va notamment utiliser la commande Emacs <code>M-l</code> ou {{Touche|Esc}} {{Touche|l}} qui convertit la suite d'une chaîne de lettres en minuscules. La signification mnémotechnique du « l » de <code>M-l</code> est ''lower case''.
  
Dans le buffer '''<code>* scratch *</code>''', vidé de son contenu initial faire un copier coller de la liste ci dessus et positionner le curseur en haut à gauche de la fenêtre Emacs (commande <code>M-< </code> , ou {{Touche|Esc}}{{Touche|<}}).
+
Dans le buffer '''<code>* scratch *</code>''', vidé de son contenu initial faire un copier coller de la liste ci dessus et positionner le curseur en haut à gauche de la fenêtre Emacs (commande <code>M-< </code> , ou {{Touche|Esc}} {{Touche|<}}).
  
 
La suite de 3 commandes de déplacement à droite ({{Touche|Right}}) positionne le curseur sur le E de JEANNE. La commande <code>M-l</code> effectue le passage en minuscules.
 
La suite de 3 commandes de déplacement à droite ({{Touche|Right}}) positionne le curseur sur le E de JEANNE. La commande <code>M-l</code> effectue le passage en minuscules.
  
 
On peut procéder de même pour l'ensemble de la liste. L'onglet '''Edit''' donne accès à une commande '''''Undo''''' en cas de fausse manipulation.
 
On peut procéder de même pour l'ensemble de la liste. L'onglet '''Edit''' donne accès à une commande '''''Undo''''' en cas de fausse manipulation.
 +
 +
==Introduction aux macros du clavier==
 +
 +
Une macro clavier permet d'enregistrer une suite de commandes, puis de les ré-exécuter. Les macros constituent un outil intéressant pour traiter des documents conséquents.
 +
 +
===Un premier exemple===
 +
 +
Pour créer une macro, il suffit d'encadrer une séquence de frappe par « <code>C-x (</code> » et « <code>C-x )</code> ».
 +
 +
Par exemple, la séquence :
 +
::{{Touches|Ctrl|x}} {{Touche|(}} {{Touche|A}} {{Touche|B}} {{Touche|C}} {{Touche|D}} {{Touches|Ctrl|x}} {{Touche|)}}
 +
:mémorise une chaîne « ABCD ».
 +
 +
Pour reproduite l'opération, il suffit de taper : « <code>C-x e</code> » ou {{Touches|Ctrl|x}} {{Touche|e}}
 +
 +
Si l'on veut enchaîner plusieurs exécutions, on peut utiliser la commande de répétition :
 +
:: {{Touche|Esc}} « ''<code> un nombre entier </code>'' » « ''<code> une commande de base </code>'' »
 +
:par exemple
 +
:: {{Touche|Esc}} {{Touche|1}} {{Touche|2}} {{Touches|Ctrl|x}} {{Touche|e}}
 +
:imprimera
 +
::ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD
 +
 +
===Application aux listes de noms===
 +
Pour appliquer ce mécanisme à une suite de lignes, il convient de bien maîtriser les manipulations élémentaires, telles que :
 +
* retour en début de ligne <code>C-a</code> (ou {{Touches|Ctrl|a}})
 +
* aller en fin de ligne <code>C-e</code> (ou {{Touches|Ctrl|e}})
 +
 +
Vous pouvez maintenant appliquer le mécanisme à l'exemple présenté plus haut. Commencer par effacer tout ce que contient le buffer '''* scratch *''' et refaire un copier/coller de la liste initiale.
 +
 +
Le traitement doit être soigneusement étudié pour être répétitif. En supposant que le curseur se trouve en début de ligne à traiter, la séquence d'opérations est la suivante :
 +
# ouverture d'une macro : {{Touches|Ctrl|x}} {{Touche|(}}
 +
# saut de trois caractères : {{Touche|Right}} {{Touche|Right}} {{Touche|Right}}
 +
# conversion de la fin du prénom : {{Touche|esc}} {{Touche|l}}
 +
# saut de deux caractères : {{Touche|Right}} {{Touche|Right}}
 +
# conversion de la fin du nom : {{Touche|esc}} {{Touche|l}}
 +
# retour en début de ligne : {{Touches|Ctrl|a}}
 +
# passage à la ligne : {{Touche|Down}}
 +
# fermeture de la macro : {{Touches|Ctrl|x}} {{Touche|)}}
 +
 +
Pour l'appliquer à la fin du fichier, il suffit de faire :
 +
:{{Touche|esc}} {{Touche|2}} {{Touches|Ctrl|x}} {{Touche|e}}
 +
 +
==Voir aussi==
 +
 +
Pour en savoir plus :
 +
*Manuel GNU Emacs (partiellement traduit en français) : http://www.linux-france.org/article/appli/emacs/manuel/
 +
 +
[[Catégorie:Wicrification]]
 +
[[Catégorie:Éditeur de texte]]

Version actuelle datée du 24 juin 2017 à 18:11

Fenêtre GNU Emacs à l'ouverture

GNU Emacs est l'une des versions les plus populaires de l'éditeur de texte Emacs. Ce tutoriel est dédié à introduire son usage depuis un ordinateur personnel (sous Windows ou Max OS X) pour des opérations de Wicrification.

Pour :

Barre de menus et commandes

L'éditeur Emacs se manipule généralement à l'aide de commandes utilisant des touches de contrôle. La barre de menu permet un apprentissage progressif d'une partie de ces commandes.

Les commandes avec la touche Control

Sur la barre de menu, l'onglet File donne accès à une liste de commandes dont certaines sont accompagnées de codes équivalents. Par exemple, la fin du menu, qui est associé à l'onglet File, contient :

Quit (C-x C-c)

La notation C-x correspond à la combinaison de touches Control et x, ou Ctrl+x.

Pour sortir d'emacs on peut alors cliquer sur cette ligne ou taper au clavier la suite :

Ctrl+x
Ctrl+c

Les commandes avec la touche Méta

Emacs utilise également la touche dite Méta pour des combinaisons de touches. La notation M-< signifie qu'il faut utiliser la combinaison de touches Alt+< pour positionner le curseur en début de texte à éditer (en haut à droite).

Cette touche est sujette à des différences suivant les claviers et systèmes.

  • Sous windows, il faut utiliser Alt+<
  • Sous Mac OS X, il faut utiliser Opt+<
  • Dans tous les cas, on peut utiliser la séquence Escape < (attention, dans ce cas, activer les touches de façon consécutive et non simultanée)

Le buffer * scratch *

Emacs utilise un ensemble de Buffers pour gérer les textes en cours d'édition. L'un d'eux est disponible pour des opérations ponctuelles. Son nom est * scratch *. Ce buffer va nous servir pour de premiers exercices.

Pour y accéder, utiliser la première ligne de l'onglet Buffer de la barre de menu. La fenêtre est alors initialisée avec un commentaire en anglais.

Pour effacer ce texte, il suffit de le sélectionner avec la souris et de l'effacer par la commande C-w (ou Ctrl+w). On peut également utiliser la touche ← Backspace.

Un premier exercice

Voici une suite de nom de personnes dans une liste en code Wiki et qu'il s'agit de convertir en forme normalisée, avec uniquement la première lettre en majuscule.

* JEANNE DUPONT
* HENRY SMITH
* RENÉ TERRIER

On va notamment utiliser la commande Emacs M-l ou Esc l qui convertit la suite d'une chaîne de lettres en minuscules. La signification mnémotechnique du « l » de M-l est lower case.

Dans le buffer * scratch *, vidé de son contenu initial faire un copier coller de la liste ci dessus et positionner le curseur en haut à gauche de la fenêtre Emacs (commande M-< , ou Esc <).

La suite de 3 commandes de déplacement à droite () positionne le curseur sur le E de JEANNE. La commande M-l effectue le passage en minuscules.

On peut procéder de même pour l'ensemble de la liste. L'onglet Edit donne accès à une commande Undo en cas de fausse manipulation.

Introduction aux macros du clavier

Une macro clavier permet d'enregistrer une suite de commandes, puis de les ré-exécuter. Les macros constituent un outil intéressant pour traiter des documents conséquents.

Un premier exemple

Pour créer une macro, il suffit d'encadrer une séquence de frappe par « C-x ( » et « C-x ) ».

Par exemple, la séquence :

Ctrl+x ( A B C D Ctrl+x )
mémorise une chaîne « ABCD ».

Pour reproduite l'opération, il suffit de taper : « C-x e » ou Ctrl+x e

Si l'on veut enchaîner plusieurs exécutions, on peut utiliser la commande de répétition :

Esc «  un nombre entier  » «  une commande de base  »
par exemple
Esc 1 2 Ctrl+x e
imprimera
ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD

Application aux listes de noms

Pour appliquer ce mécanisme à une suite de lignes, il convient de bien maîtriser les manipulations élémentaires, telles que :

  • retour en début de ligne C-a (ou Ctrl+a)
  • aller en fin de ligne C-e (ou Ctrl+e)

Vous pouvez maintenant appliquer le mécanisme à l'exemple présenté plus haut. Commencer par effacer tout ce que contient le buffer * scratch * et refaire un copier/coller de la liste initiale.

Le traitement doit être soigneusement étudié pour être répétitif. En supposant que le curseur se trouve en début de ligne à traiter, la séquence d'opérations est la suivante :

  1. ouverture d'une macro : Ctrl+x (
  2. saut de trois caractères :
  3. conversion de la fin du prénom : esc l
  4. saut de deux caractères :
  5. conversion de la fin du nom : esc l
  6. retour en début de ligne : Ctrl+a
  7. passage à la ligne :
  8. fermeture de la macro : Ctrl+x )

Pour l'appliquer à la fin du fichier, il suffit de faire :

esc 2 Ctrl+x e

Voir aussi

Pour en savoir plus :