<chapter id="editing"> <title >Redigeringsverktyg</title> <sect1 id="editing-snippets"> <title >Kodsnuttar</title> <itemizedlist> <title >Funktioner (inledande översikt)</title> <listitem ><para >Delprogrammet för kodsnuttar lägger till en verktygsvy som normalt dockas till höger </para ></listitem> <listitem ><para >Tillägg, redigering och borttagning av kodsnuttar är tillgängligt via en sammanhangsberoende meny. </para ></listitem> <listitem ><para >Ett dubbelklick på en kodsnutt i listan infogar den i den aktiva vyn på markörens plats </para ></listitem> <listitem ><para >Verktygstips visar innehållet i en kodsnutt </para ></listitem> <listitem ><para >Kodsnuttar lagras i användarens hemkatalog, så varje användare kan ha sina egna kodsnuttar </para ></listitem> <listitem ><para >Kodsnuttar kan innehålla variabler på formen $<varname >VARNAMN</varname >$. När kodsnutten används, frågas användaren efter ersättningsvärden för variablerna </para ></listitem> </itemizedlist> </sect1 > <!-- editing-snippets --> <sect1 id="keyboardmapping"> <title >Tangentanvändning</title> <indexterm zone="keyboardmapping" ><primary >tangentbindningar</primary ></indexterm> <para >I det följande listar vi normala tangentbindningar för standardeditorn. Du kan anpassa dem som du vill (hur då?). </para> <informaltable> <tgroup cols="2"> <tbody> <row ><entry ><para ><keycap >Vänster </keycap ></para ></entry> <entry ><para >Flyttar ett tecken åt vänster </para ></entry ></row> <row ><entry ><para ><keycap >Höger </keycap ></para ></entry> <entry ><para >Flyttar ett tecken åt höger </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > Vänster </keycap ></keycombo ></para ></entry> <entry ><para >Flyttar ett ord åt vänster </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > Höger </keycap ></keycombo ></para ></entry> <entry ><para >Flyttar ett ord åt höger </para ></entry ></row> <row ><entry ><para ><keycap >Upp </keycap ></para ></entry> <entry ><para >Flyttar upp en rad </para ></entry ></row> <row ><entry ><para ><keycap >Ner </keycap ></para ></entry> <entry ><para >Flyttar ner en rad </para ></entry ></row> <row ><entry ><para ><keycap >Page Up </keycap ></para ></entry> <entry ><para >Flyttar upp en sida </para ></entry ></row> <row ><entry ><para ><keycap >Page Down </keycap ></para ></entry> <entry ><para >Flyttar ner en sida </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > Page Up </keycap ></keycombo ></para ></entry> <entry ><para >Går till början av filen </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > Page Down </keycap ></keycombo ></para ></entry> <entry ><para >Går till slutet av filen </para ></entry ></row> <row ><entry ><para ><keycap >Home </keycap ></para ></entry> <entry ><para >Går till början av raden </para ></entry ></row> <row ><entry ><para ><keycap >End </keycap ></para ></entry> <entry ><para >Går till slutet av raden </para ></entry ></row> </tbody> </tgroup> </informaltable> <para >För alla tangenter ovan, kan dessutom skifttangenten tryckas ner, för att markera text från markörens nuvarande position till den nya. </para> <informaltable> <tgroup cols="2"> <tbody> <row ><entry ><para ><keycap >Backsteg </keycap ></para ></entry> <entry ><para >Tar bort ett tecken åt vänster </para ></entry ></row> <row ><entry ><para ><keycap >Delete </keycap ></para ></entry> <entry ><para >Tar bort tecknet under markören </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > C </keycap ></keycombo ></para ></entry> <entry ><para >Kopierar den markerade texten till klippbordet </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > V </keycap ></keycombo ></para ></entry> <entry ><para >Klistrar in den markerade texten från klippbordet </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > X </keycap ></keycombo ></para ></entry> <entry ><para >Tar bort den markerade texten och lägger den på klippbordet </para ></entry ></row> <row ><entry ><para ><keycombo >&Ctrl;<keycap > Z </keycap ></keycombo ></para ></entry> <entry ><para >Ångra </para ></entry ></row> <row ><entry ><para ><keycombo >&Shift;&Ctrl;<keycap > Z </keycap ></keycombo ></para ></entry> <entry ><para >Gör om </para ></entry ></row> </tbody> </tgroup> </informaltable> </sect1 > <!-- keyboardmapping --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="editing-reporter"> <title >Problemrapporter</title> <para >(...ännu inte skrivet...) </para> </sect1 > <!-- editing-reporter --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="searchinggrepping"> <title >Sökning och flerfilssökning</title> <indexterm zone="searchinggrepping" ><primary >sökning</primary ></indexterm> <indexterm zone="searchinggrepping" ><primary >hitta</primary ></indexterm> <sect2 id="searching"> <title >Söka efter text</title> <para ><keycombo ><keycap >Ctrl</keycap ><keycap >F</keycap ></keycombo >- Sök, <keycombo ><keycap >Ctrl</keycap ><keycap >R</keycap ></keycombo >- Ersätt </para> </sect2 > <!-- searching --> <sect2 id="isearch"> <title >I-sök</title> <indexterm zone="isearch" ><primary >i-sök</primary ></indexterm> <indexterm zone="isearch" ><primary >inkrementell sökning</primary ></indexterm> <indexterm zone="isearch" ><primary >sök</primary ><secondary >inkrementell</secondary ></indexterm> <para >Den vanliga sökningen med <menuchoice ><guimenu >Redigera</guimenu ><guimenuitem >Sök</guimenuitem ></menuchoice > kräver att du anger hela sökbegreppet innan du startar. Oftast är det mycket snabbare att söka inkrementellt. Om du klickar på sökfältet som heter <guilabel >I-sök</guilabel > i verktygsraden, sker sökningen medan du skriver. Du kommer att märka att det önskade resultatet ofta redan hittas när du har skrivit in 3 eller 4 tecken. </para> </sect2 > <!-- isearch --> <sect2 id="grep"> <title >Flerfilsökning</title> <indexterm zone="grep" ><primary >sök</primary ><secondary >i filer</secondary ></indexterm> <para >Båda sökmekanismerna som beskrivs ovan är begränsade till sökning i en källkodsfil. Ett ytterligare verktyg som låter dig söka igenom ett (möjligtvis stort) antal filer är tillgängligt via alternativet <guimenuitem >Sök i filer...</guimenuitem > i menyn <guimenu >Redigera</guimenu >. Det är i grunden ett gränssnitt för programmet &grep;(1). </para> <para >I dialogrutan kan du ange vilka filer som ska sökas i. Det finns ett antal jokertecken tillgängliga i en kombinationsruta. Genom att använda dem kan du enkelt begränsa sökmekanismen till exempel för deklarationsfiler. Dessutom kan du också ange en katalog där sökningen startas. Om du markerar rutan <guibutton >Rekursiv</guibutton >, går sökningen igenom alla kataloger i hierarkin under den angivna. </para> <para >Sökbegreppet är i grunden ett reguljärt uttryck som följer POSIX-syntax. Du kan till exempel använda begreppet <literal >"\<K.*"</literal >, om du vill hitta alla ord som börjar med bokstaven K. Följande tecken tolkas på ett särskilt sätt: </para> <informaltable> <tgroup cols="2"> <tbody> <row ><entry> <literal >.</literal> </entry ><entry >Matchar alla tecken </entry ></row> <row ><entry> <literal >^</literal> </entry ><entry >Matchar början av en rad </entry ></row> <row ><entry> <literal >$</literal> </entry ><entry >Matchar slutet av en rad </entry ></row> <row ><entry> <literal >\<</literal> </entry ><entry >Matchar början av ett ord </entry ></row> <row ><entry> <literal >\></literal> </entry ><entry >Matchar slutet av ett ord </entry ></row> <row ><entry> <literal >?</literal> </entry ><entry >Föregående objekt matchas mindre än en gång </entry ></row> <row ><entry> <literal >*</literal> </entry ><entry >Föregående objekt matchas noll eller flera gånger </entry ></row> <row ><entry> <literal >+</literal> </entry ><entry >Föregående objekt matchas en eller flera gånger </entry ></row> <row ><entry> <literal >{n}</literal> </entry ><entry >Föregående objekt matchas exakt n gånger </entry ></row> <row ><entry> <literal >{n,}</literal> </entry ><entry >Föregående objekt matchas n eller flera gånger </entry ></row> <row ><entry> <literal >{,n}</literal> </entry ><entry >Föregående objekt matchas mindre än n gånger </entry ></row> <row ><entry> <literal >{n,m}</literal> </entry ><entry >Föregående objekt matchas minst <literal >n</literal > gånger, men mindre än <literal >m</literal > gånger </entry ></row> </tbody> </tgroup> </informaltable> <para >Bakåtreferenser till deluttryck inom parenteser är också tillgängliga med notationen <literal >\n</literal >. </para> <para >Som en särskild bonus för C++ programmerare, finns några sökmallar tillgängliga för typiska mönster. De låter dig till exempel söka efter alla anrop av medlemsfunktioner för ett visst objekt. </para> <para >När du väl har startat sökningen genom att klicka på knappen <guibutton >Sök</guibutton >, utförs den av en yttre, asynkron process. Alla objekt som hittas syns i vyn som heter <guilabel >Flerfilsökning</guilabel >. Därefter kan du hoppa till objekt som hittas genom att klicka på dem. Observera att grep söker igenom filerna som är lagrade i filsystemet. Om du har ändrade versioner av dem i editorn, kan du få felaktiga radnummer, eller vissa ogiltiga hittade objekt. Du kan undvika detta genom att spara alla filer innan. </para> </sect2 > <!-- grep --> </sect1 > <!-- searchinggrepping --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="code-completion"> <title >Kodkomplettering</title> <para >(...ännu inte skrivet...) </para> </sect1 > <!-- code-completion --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <sect1 id="newfiles"> <title >Skapa nya filer och klasser</title> <para >(...ännu inte skrivet...) </para> <sect2 id="newfiles-edittemplates"> <title >Redigera mallarna</title> <para >(...ännu inte skrivet...) </para> </sect2 > <!-- newfiles-edittemplates --> </sect1 > <!-- newfiles --> </chapter > <!-- editing --> <!-- ====================================================================== -->