<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 >"\<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 >\<</literal> </entry ><entry >Matcher begyndelsen af et ord </entry ></row> <row ><entry> <literal >\></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 --> <!-- ====================================================================== -->