<chapter id="editing">
<title
>Outils d'édition</title>

<sect1 id="editing-snippets">
<title
>Fragments de code</title>

<itemizedlist>
  <title
>Fonctionnalités (vue d'ensemble préliminaire)</title>
  <listitem
><para
>« SnippetPart » ajoute une vue des outils qui par défaut s'inscruste à droite </para
></listitem>
  <listitem
><para
>L'ajout, l'édition et la suppression de fragments est disponible via un menu qui apparaîtt </para
></listitem>
  <listitem
><para
>Double-cliquer sur un fragment depuis une liste l'insère dans la vue active à la  position actuelle du curseur </para
></listitem>
  <listitem
><para
>Les infobulles affichent le contenu d'un fragment </para
></listitem>
  <listitem
><para
>Comme les fragments sont stockés dans le répertoire personnel des utilisateurs, chacun peut avoir ses propres fragments </para
></listitem>
  <listitem
><para
>Les fragments peuvent contenir des variables dans le style de $<varname
>VARNAME</varname
>$. Lors de l'emploi des fragments, l'utilisateur reçoit une invite à saisir une valeur de remplacement pour les variables </para
></listitem>
</itemizedlist>
</sect1
> <!-- editing-snippets -->

<sect1 id="keyboardmapping">
<title
>Correspondance de clavier</title>
<indexterm zone="keyboardmapping"
><primary
>associations de touches</primary
></indexterm>

<para
>Dans ce qui suit, nous listerons les associations de touches par défaut de l'éditeur par défaut. Vous pouvez les configurer à votre gré (comment ?) </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Gauche </keycap
></para
></entry>
<entry
><para
>Se déplace d'un caractère vers la gauche </para
></entry
></row>

<row
><entry
><para
><keycap
>Droite </keycap
></para
></entry>
<entry
><para
>Se déplace d'un caractère vers la droite </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Gauche </keycap
></keycombo
></para
></entry>
<entry
><para
>Se déplace d'un mot vers la gauche </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Droite </keycap
></keycombo
></para
></entry>
<entry
><para
>Se déplace d'un mot vers la droite </para
></entry
></row>

<row
><entry
><para
><keycap
>Haut </keycap
></para
></entry>
<entry
><para
>Se déplace d'une ligne vers le haut </para
></entry
></row>

<row
><entry
><para
><keycap
>Bas </keycap
></para
></entry>
<entry
><para
>Se déplace d'une ligne vers le bas </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Haut </keycap
></para
></entry>
<entry
><para
>Se déplace d'une page vers le haut </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Bas </keycap
></para
></entry>
<entry
><para
>Se déplace d'une page vers le bas </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Page Bas </keycap
></keycombo
></para
></entry>
<entry
><para
>Se déplace au début du fichier </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl; <keycap
> Page Bas </keycap
></keycombo
></para
></entry>
<entry
><para
>Se déplace à la fin du fichier </para
></entry
></row>

<row
><entry
><para
><keycap
>Début </keycap
></para
></entry>
<entry
><para
>Se déplace au début de la ligne </para
></entry
></row>

<row
><entry
><para
><keycap
>Fin </keycap
></para
></entry>
<entry
><para
>Se déplace à la fin de la ligne </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Pour toutes les touches ci-dessus, on peut peut appuyer en plus sur la touche &Maj; pour faire une marque depuis la position actuelle du curseur jusqu'à celle d'après. </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Correction </keycap
></para
></entry>
<entry
><para
>Supprime un caractère à gauche </para
></entry
></row>

<row
><entry
><para
><keycap
>Suppression </keycap
></para
></entry>
<entry
><para
>Supprime le caractère sous le curseur </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl; <keycap
> C </keycap
></keycombo
></para
></entry>
<entry
><para
>Copie le texte sélectionné dans le presse-papiers </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> V </keycap
></keycombo
></para
></entry>
<entry
><para
>Colle le texte sélectionné depuis le presse-papiers </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> X </keycap
></keycombo
></para
></entry>
<entry
><para
>Supprime le texte sélectionné et le place dans le presse-papiers </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Annuler </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Maj;&Ctrl;<keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Refaire </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

</sect1
> <!-- keyboardmapping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="editing-reporter">
<title
>La liste des problèmes</title>

<para
>(... à écrire ...) </para>
</sect1
> <!-- editing-reporter -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="searchinggrepping">
<title
>Recherche et « grep »</title>
<indexterm zone="searchinggrepping"
><primary
>rechercher</primary
></indexterm>
<indexterm zone="searchinggrepping"
><primary
>trouver</primary
></indexterm>

<sect2 id="searching">
<title
>Recherche de texte</title>

<para
><keycombo
>&Ctrl;<keycap
>F</keycap
></keycombo
>- Chercher <keycombo
>&Ctrl;<keycap
>R</keycap
></keycombo
>- Remplacer </para>

</sect2
> <!-- searching -->


<sect2 id="isearch">
<title
>ISearch</title>
<indexterm zone="isearch"
><primary
>isearch</primary
></indexterm>
<indexterm zone="isearch"
><primary
>recherche incrémentale</primary
></indexterm>
<indexterm zone="isearch"
><primary
>recherche</primary
><secondary
>incrémentale</secondary
></indexterm>

<para
>La recherche conventionnelle avec <menuchoice
><guimenu
>Édition</guimenu
> <guimenuitem
>Chercher</guimenuitem
></menuchoice
> exige que vous indiquiez le terme complet à rechercher avant de de démarrer. Le plus souvent, il est beaucoup plus rapide de faire une recherche incrémentale. Si vous cliquez dans le champ d'édition étiqueté <guilabel
>ISearch</guilabel
> dans la barre d'outils, la recherche s'effectue à mesure que vous saisissez. Vous constaterez que souvent le terme souhaité est déjà trouvé après avoir saisi 3 ou 4 lettres. </para>

</sect2
> <!-- isearch -->


<sect2 id="grep">
<title
>Grep</title>
<indexterm zone="grep"
><primary
>recherche</primary
><secondary
>dans les fichiers</secondary
></indexterm>

<para
>Les deux mécanismes de recherche décrits ci-dessus se limitent à la recherche dans un fichier source. Un outil additionnel qui vous permet de faire une recherche à travers un nombre (éventuellement grand) de fichiers est disponible via l'élément <guimenuitem
>Chercher dans les fichiers...</guimenuitem
> dans le menu <guimenu
>Édition</guimenu
>. C'est essentiellement une interface pour le programme &grep;(1). </para>

<para
>Dans la boîte de dialogue, vous pouvez spécifier quels sont les fichiers recherchés. Il y a un certain nombre de motifs jokers disponibles dans une zone de liste modifiable. De cette manière, vous pouvez facilement restreindre le mécanisme de recherche aux fichiers d'en-tête. En outre, vous spécifiez un dossier où démarrer la recherche. Si vous cochez la case <guibutton
>Récursif</guibutton
>, la recherche itère via tous les dossier dans la hiérarchie au-dessous de celle-ci. </para>

<para
>Le terme à rechercher est en général une expression régulière qui suit la syntaxe POSIX. Par exemple, vous pouvez utiliser le terme <literal
>"\&lt;K.*"</literal
> si vous voulez trouver tous les mots commençant par la lettre K. Les caractères suivants sont interprétés d'une manière spéciale : </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry>
  <literal
>.</literal>
</entry
><entry
>Correspond à n'importe quel caractère </entry
></row>
<row
><entry>
  <literal
>^</literal>
</entry
><entry
>Correspond au début d'une ligne </entry
></row>
<row
><entry>
  <literal
>$</literal>
</entry
><entry
>Correspond à la fin d'une ligne </entry
></row>
<row
><entry>
  <literal
>\&lt;</literal>
</entry
><entry
>Correspond au début d'un mot </entry
></row>
<row
><entry>
  <literal
>\&gt;</literal>
</entry
><entry
>Correspond à la fin d'un mot </entry
></row>
<row
><entry>
  <literal
>?</literal>
</entry
><entry
>Le précédent élément correspond à moins d'une fois </entry
></row>
<row
><entry>
  <literal
>*</literal>
</entry
><entry
>L'élément précédent correspond zéro ou plusieurs fois </entry
></row>
<row
><entry>
  <literal
>+</literal>
</entry
><entry
>L'élément précédent correspond une ou plusieurs fois </entry
></row>
<row
><entry>
  <literal
>{n}</literal>
</entry
><entry
>L'élément précédent correspond exactement n fois </entry
></row>
<row
><entry>
  <literal
>{n,}</literal>
</entry
><entry
>L'élément précédent correspond n ou plusieurs fois </entry
></row>
<row
><entry>
  <literal
>{,n}</literal>
</entry
><entry
>L'élément précédent correspond à moins de n fois </entry
></row>
<row
><entry>
  <literal
>{n,m}</literal>
</entry
><entry
>L'élément précédent correspond au moins <literal
>n</literal
> fois mais moins de <literal
>m</literal
> fois </entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Des références arrières à des expressions entre crochets sont également accessibles via la notation <literal
>\n</literal
>. </para>

<para
>Pour les programmeurs C++, comme bonus spécial, il y a certains modèles de recherche disponibles pour des motifs typiques. Ceux-ci vous permettent de rechercher par exemple tous les exemples de fonctions membres d'un certain objet. </para>

<para
>Une fois que commencez la recherche en cliquant sur le bouton <guibutton
>Rechercher</guibutton
>, elle sera effectuée par un processus externe asynchrone. Tous les éléments trouvés apparaîtront dans la vue appelée <guilabel
>Grep</guilabel
>. Vous pouvez ensuite passer aux éléments trouvés en cliquant dessus. Notez que « grep » explore les fichiers à mesure qu'ils sont stockés dans le système de fichiers. Si vous en avez modifié des versions dans votre éditeur, vous risquez d'avoir des discordances dans le numéro de ligne, ou bien certains éléments trouvés seront invalides. Vous pouvez éviter cela en enregistrant tous les fichiers au préalable. </para>

</sect2
> <!-- grep -->

</sect1
> <!-- searchinggrepping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="code-completion">
<title
>Complétement du code</title>

<para
>(... à écrire ...) </para>
</sect1
> <!-- code-completion -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="newfiles">
<title
>Créer de nouveaux fichiers et de nouvelles classes</title>

<para
>(... à écrire ...) </para>

<sect2 id="newfiles-edittemplates">
<title
>Édition des modèles</title>

<para
>(... à écrire ...) </para>
</sect2
> <!-- newfiles-edittemplates -->

</sect1
> <!-- newfiles -->

</chapter
> <!-- editing -->
<!-- ====================================================================== -->
