<chapter id="editing">
<title>Redigeringsværktøjer</title>

<sect1 id="editing-snippets">
<title>Kodestumper</title>

<itemizedlist>
  <title>Funktioner (foreløbigt overblik)</title>
  <listitem><para>SnippetPart tilføjer en værktøjsvisning der som standard dokker til højre </para></listitem>
  <listitem><para>Tilføjelse, redigering og fjernelse af stumper er tilgængelig via en popop-menu </para></listitem>
  <listitem><para>Dobbeltklik på en kodestump fra listen indsætter den i den aktive visning ved markørens nuværende position </para></listitem>
  <listitem><para>Værktøjsvink viser indholdet af en kodestump </para></listitem>
  <listitem><para>Kodestumper opbevares i brugerens hjemmemappe, så hver bruger kan have sine egne kodestumper </para></listitem>
  <listitem><para>Kodestumper kan indeholde variabler på formen $<varname>VARNAVN</varname>$. Når kodestumpren bruges, spørges brugeren om erstatningsværdier for variablerne </para></listitem>
</itemizedlist>
</sect1> <!-- editing-snippets -->

<sect1 id="keyboardmapping">
<title>Tastebrug</title>
<indexterm zone="keyboardmapping"><primary>tastebindinger</primary></indexterm>

<para>I det følgende giver vi en liste af normale tastebindninger for standardeditoren. Du kan indstille dem som du vil (hvordan det?). </para>

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

<row><entry><para><keycap>Venstre </keycap></para></entry>
<entry><para>Flytter et tegn til venstre </para></entry></row>

<row><entry><para><keycap>Højre </keycap></para></entry>
<entry><para>Flytter et tegn til højre </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> Venstre </keycap></keycombo></para></entry>
<entry><para>Flytter et ord til venstre </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> Højre </keycap></keycombo></para></entry>
<entry><para>Flytter et ord til højre </para></entry></row>

<row><entry><para><keycap>Op </keycap></para></entry>
<entry><para>Flytter en linje op </para></entry></row>

<row><entry><para><keycap>Ned </keycap></para></entry>
<entry><para>Flytter en linje ned </para></entry></row>

<row><entry><para><keycap>Page Up </keycap></para></entry>
<entry><para>Flytter en side op </para></entry></row>

<row><entry><para><keycap>Page Down </keycap></para></entry>
<entry><para>Flytter en side ned </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> Page Up </keycap></keycombo></para></entry>
<entry><para>Går til begyndelsen af filen </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> Page Down </keycap></keycombo></para></entry>
<entry><para>Går til slutningen af filen </para></entry></row>

<row><entry><para><keycap>Hjem </keycap></para></entry>
<entry><para>Går til begyndelsen af linjen </para></entry></row>

<row><entry><para><keycap>End </keycap></para></entry>
<entry><para>Går til slutningen af linjen </para></entry></row>

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

<para>For alle tasterne ovenfor, kan shift-tasten desuden trykkes ned, for at markere tekst fra markørens nuværende position til den nye. </para>

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

<row><entry><para><keycap>Backspace </keycap></para></entry>
<entry><para>Sletter et tegn til venstre </para></entry></row>

<row><entry><para><keycap>Slet </keycap></para></entry>
<entry><para>Sletter tegnet under markøren </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> C </keycap></keycombo></para></entry>
<entry><para>Kopierer den valgte tekst til klippebordet </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> V </keycap></keycombo></para></entry>
<entry><para>Indsætter den markerede tekst fra klippebordet </para></entry></row>

<row><entry><para><keycombo>&Ctrl;<keycap> X </keycap></keycombo></para></entry>
<entry><para>Sletter den markerede tekst og lægger den på klippebordet </para></entry></row>

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

<row><entry><para><keycombo>&Shift;&Ctrl;<keycap> Z </keycap></keycombo></para></entry>
<entry><para>Annullér fortryd </para></entry></row>

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

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

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

<sect1 id="editing-reporter">
<title>Problemrapporter</title>

<para>(... endnu ikke skrevet ...) </para>
</sect1> <!-- editing-reporter -->

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

<sect1 id="searchinggrepping">
<title>Søgning og flerfilssøgning</title>
<indexterm zone="searchinggrepping"><primary>søgning</primary></indexterm>
<indexterm zone="searchinggrepping"><primary>find</primary></indexterm>

<sect2 id="searching">
<title>Søg efter tekst</title>

<para><keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo>- Søg, <keycombo><keycap>Ctrl</keycap><keycap>R</keycap></keycombo>- Erstat </para>

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


<sect2 id="isearch">
<title>I-søgning</title>
<indexterm zone="isearch"><primary>i-søg</primary></indexterm>
<indexterm zone="isearch"><primary>inkrementel søgning</primary></indexterm>
<indexterm zone="isearch"><primary>søg</primary><secondary>inkrementel</secondary></indexterm>

<para>Den almindelige søgning med <menuchoice><guimenu>Redigér</guimenu><guimenuitem>Søg</guimenuitem></menuchoice> kræver at du angiver hele søgebegrebet inden du starter. Oftest er det meget hurtigere at søge inkrementelt. Hvis du klikker på søgefeltet som hedder <guilabel>I-søg</guilabel> i værktøjslinjen, sker søgningen mens du skriver. Du vil mærke at det ønskede resultat allerede er der når du har skrevet 3 eller 4 tegn. </para>

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


<sect2 id="grep">
<title>Grep</title>
<indexterm zone="grep"><primary>søg</primary><secondary>i filer</secondary></indexterm>

<para>Begge søgemekanismer som blev beskrevet ovenfor er begrænsede til søgning i én kildekodefil. Et yderligere værktøj som lader dig søge gennem et (muligvis stort) antal filer er tilgængeligt via punktet <guimenuitem>Søg i filer...</guimenuitem> i menuen <guimenu>Redigér</guimenu>. Det er blot en grænseflade til programmet &grep;(1). </para>

<para>I dialogen kan du angive hvilke filer der skal søges i. Der er et antal joker-mønstre tilgængelige i et kombinationsfelt. På denne måde kan du let begrænse søgemekanismen til inkluderingsfiler. Desuden angiver du en mappe hvor søgningen startes. Hvis du afkrydser feltet <guibutton>Rekursiv</guibutton>, går søgningen gennem alle mapper i hierarkiet under den angivne. </para>

<para>Søgebegrebet er generelt et regulært udtryk som følger POSIX-syntaksen. Du kan for eksempel bruge begrebet <literal>"\&lt;K.*"</literal>, hvis du vil finde alle ord som begynder med bogstavet K. Følgende tegn tolkes på en særlig måde: </para>

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

<row><entry>
  <literal>.</literal>
</entry><entry>Matcher alle tegn </entry></row>
<row><entry>
  <literal>^</literal>
</entry><entry>Matcher begyndelsen af en linje </entry></row>
<row><entry>
  <literal>$</literal>
</entry><entry>Matcher slutningen af en linje </entry></row>
<row><entry>
  <literal>\&lt;</literal>
</entry><entry>Matcher begyndelsen af et ord </entry></row>
<row><entry>
  <literal>\&gt;</literal>
</entry><entry>Matcher slutningen af et ord </entry></row>
<row><entry>
  <literal>?</literal>
</entry><entry>Matcher foregående punkt mindre end en gang </entry></row>
<row><entry>
  <literal>*</literal>
</entry><entry>Matcher det foregående punkt nul eller eller flere gange </entry></row>
<row><entry>
  <literal>+</literal>
</entry><entry>Matcher det foregående punkt en eller flere gange </entry></row>
<row><entry>
  <literal>{n}</literal>
</entry><entry>Matcher det foregående punkt nøjagtigt n gange </entry></row>
<row><entry>
  <literal>{n,}</literal>
</entry><entry>Matcher det foregående punkt n eller flere gange </entry></row>
<row><entry>
  <literal>{,n}</literal>
</entry><entry>Matcher foregående punkt mindre end n gange </entry></row>
<row><entry>
  <literal>{n,m}</literal>
</entry><entry>Matcher foregående punkt mindst <literal>n</literal> gange, men færre end <literal>m</literal> gange </entry></row>

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

<para>Tilbagereferencer til deludtryk indeni parenteser er også tilgængelige med notationen <literal>\n</literal>. </para>

<para>Som en særlig bonus for C++ programmører, er der nogle søgeskabeloner tilgængelige for typiske mønstre. De tillader dig for eksempel at søge efter alle kald af medlemsfunktioner for et vist objekt. </para>

<para>Når du har startet søgningen ved at klikke på knappen <guibutton>Søg</guibutton>, udføres den af en ydre, asynkron proces. Alle punkter som findes, ses i visningen som hedder <guilabel>Grep</guilabel>. Derefter kan du gå til de fundne punkter ved at klikke på dem. Bemærk at grep gennemsøger filerne som de er opbevarede i filsystemet. Hvis du har ændrede versioner af dem i editoren, kan du få forkerte linjenumre, eller visse ugyldige fundne punkter. Du kan undgå dette ved at gemme alle filer inden søgningen. </para>

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

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

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

<sect1 id="code-completion">
<title>Kodekomplettering</title>

<para>(... endnu ikke skrevet ...) </para>
</sect1> <!-- code-completion -->

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

<sect1 id="newfiles">
<title>Opret nye filer og klasser</title>

<para>(... endnu ikke skrevet ...) </para>

<sect2 id="newfiles-edittemplates">
<title>Redigér skabelonerne</title>

<para>(... endnu ikke skrevet ...) </para>
</sect2> <!-- newfiles-edittemplates -->

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

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