<chapter id="advanced-editing-tools">
<chapterinfo>
<authorgroup>
<author
>&Anders.Lund; &Anders.Lund.mail;</author>
<author
>&Dominik.Haumann; &Dominik.Haumann.mail;</author>
<othercredit role="translator"
><firstname
>Marek</firstname
><surname
>Laane</surname
><affiliation
><address
><email
>bald@smail.ee</email
></address
></affiliation
><contrib
>Tõlge eesti keelde</contrib
></othercredit
> 
</authorgroup>
</chapterinfo>
<title
>Täiustatud redigeerimisvahendid</title>

<sect1 id="advanced-editing-tools-comment">

<title
>Kommentaari lisamine/eemaldamine</title>

<para
>Käsud <guimenuitem
>Kommentaar</guimenuitem
> ja <guimenuitem
>Eemalda kommentaar</guimenuitem
>, mida saab kasutada menüüst <guimenu
>Tööriistad</guimenu
>, võimaldavad lisada valitud tekstiosale või kui midagi ei ole valitud, siis parajasti aktiivsele reale kommentaarimärgid või need sealt eemaldada. Seda muidugi juhul, kui parajasti redigeeritava teksti vorming kommentaare üldse kasutada lubab.</para>

<para
>Reeglid, mil moel kommentaar välja näeb, on määratud süntaksi definitsioonis, nii et kui süntaksi esiletõstu ei kasutata, ei ole võimalik ka kommentaarimärke lisada või eemaldada. </para>

<para
>Mõned vormingud defineerivad ühe rea kommentaarimärgid, mõned lubavad kommenteerida mitut rida korraga ja mõned mõlemat. Kui mitme rea kommentaarimärke ei ole saadaval, siis ei ole võimalik kommenteerida valikut, mille viimane rida ei ole valitud tervikuna.</para>

<para
>Kui saadaval on ühe rea kommentaarimärgid, on võimaluse korral mõttekas kommenteerida üksikuid ridasid - nii saab ära hoida näiteks "kommentaari kommentaari sees".</para>

<para
>Kommentaarimärkide eemaldamisel ei tohi olla valitud kommenteerimata teksti. Valikult mitmerealise kommentaarimärgistuse eemaldamisel eiratakse iga tühikut väljaspool kommentaarimärgistust.</para>

<para
><indexterm
><primary
>kommentaar</primary
></indexterm
> Kommentaarimärkide lisamiseks kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Kommentaar</guimenuitem
></menuchoice
> või vastavat kiirklahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
>&Ctrl;<keycap
>D</keycap
></keycombo
>.</para>

<para
><indexterm
><primary
>kommentaari eemaldamine</primary
></indexterm
> Kommentaarimärkide eemaldamiseks kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Eemalda kommentaar</guimenuitem
></menuchoice
> või vastavat klahvikombinatsiooni, mis vaikimisi on <keycombo action="simul"
>&Ctrl;&Shift;<keycap
>D</keycap
></keycombo
>.</para>

</sect1>

<sect1 id="advanced-editing-tools-commandline">
<title
>Redaktori käsureakomponent</title>

<para
>&kappname; redaktorikomponent kasutab seesmist käsurida, mis võimaldab minimaalse GUI-ga väga mitmesuguseid toiminguid ette võtta. Käsurida on terminal redaktori allosas, mille saab nähtavaks muuta menüükäsuga <menuchoice
><guimenu
>Vaade</guimenu
><guimenuitem
>Lülitu käsureale</guimenuitem
></menuchoice
> või kiirklahviga (vaikimisi <keycombo action="simul"
><keycap
>F7</keycap
></keycombo
>). Redaktor pakub omalt poolt välja rea käske, mida tutvustatakse allpool, pluginad võivad neile veelgi lisa pakkuda.</para>

<para
>Käsu käivitamiseks vajuta klahvi Enter. Käsurida annab märku, kas täitmine õnnestus ning näitab vajaduse korral teadet. Kui avasid käsurea klahviga <keycap
>F7</keycap
>, peidetakse see automaatselt mõne sekundi pärast. Teate eemaldamiseks ja uue käsu sisestamiseks vajuta uuesti klahvi <keycap
>F7</keycap
>.</para>

<para
>Käsureal on omaenda abisüsteem, mille käivitamiseks anna käsk <command
>help</command
>. Kõigi võimalike käskude nägemiseks anna käsk <command
>help list</command
>, mõne konkreetse käsu abi nägemiseks käsk <command
>help <replaceable
>käsk</replaceable
></command
>.</para>

<para
>Käsureal on ka omaenda mälu ehk ajalugu, mis võimaldab uuesti kasutada juba varem antud käske. Ajaloos saab liikuda klahvidega <keycap
>Nool üles</keycap
> ja <keycap
>Nool alla</keycap
>. Varasemate käskude näitamisel valitakse selle argument, mis võimaldab neid kergesti asendada.</para>

<sect2 id="advanced-editing-tools-commandline-commands">
<title
>Standardsed käsureakäsud</title>

<variablelist>
<title
>Argumenditüübid</title>

<varlistentry>
<term
>TÕEVÄÄRTUS</term>
<listitem
><para
>Seda kasutatakse käskude puhul, millega saab midagi sisse või välja lülitada. Väärtusteks võivad olla <userinput
>on</userinput
> ('sees'), <userinput
>off</userinput
> ('väljas'), <userinput
>true</userinput
> ('tõene'), <userinput
>false</userinput
> ('väär'), <userinput
>1</userinput
> või <userinput
>0</userinput
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
>TÄISARV</term>
<listitem
><para
>Täisarv.</para
></listitem>
</varlistentry>

<varlistentry>
<term
>SÕNE</term>
<listitem
><para
>String, mida ümbritsevad ühekordsed (') või kahekordsed jutumärgid ("), kui see sisaldab tühikuid.</para
></listitem>
</varlistentry>

</variablelist>



<sect3 id="advanced-editing-tools-commandline-commands-configure">
<title
>Redaktori seadistamise käsud</title>

<para
>Neid käske võimaldab kasutada redaktorikomponent ja need on mõeldud ainult aktiivse dokumendi ja vaate seadistamiseks. See on mugav juhul, kui sa ei soovi mingil põhjusel kasutada vaikeseadistusi (näiteks soovid teistmoodi treppida). </para>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>set-tab-width</command
><arg choice="req"
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab tabelduskoha laiuseks arvu <userinput
>laius</userinput
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-width</command
><arg choice="req"
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab taande laiuseks arvu <userinput
>laius</userinput
>. Ainult sel juhul, kui trepitakse tühikutega.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap-column</command
><arg choice="req"
>TÄISARV laius</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab sõnamurdmise korral rea laiuseks arvu <userinput
>laius</userinput
>. Ainult siis, kui teksti automaatne murdmine on sisse lülitatud.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-icon-border</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
> </cmdsynopsis
></term>
<listitem
><para
>Ikoonipiirde näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-folding-markers</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Voltimismärkide paneeli näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-line-numbers</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Reanumbrite paneeli näitamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel asendatakse tabeldusmärgid kirjutamise ajal tühimärkidega. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel eemaldatakse rea lõpus seisvad tühimärgid kohe pärast seda, kui kursor lahkub realt.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-show-tabs</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel näidatakse tabeldusmärke ja rea lõpus seisvaid tühimärke väikeste punktidena.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-show-indent</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel näidatakse treppimist vertikaalse punktidest reana.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-spaces</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel trepib redaktor igal treppimistasemel <option
>indent-width</option
>'iga määratud tühikutega, mitte aga tabeldusmärgiga.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-mixed-indent</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel kasutab &kappname; treppimisel tabeldus- ja tühimärkide segu. Iga treppimistase on laiusega <option
>indent-width</option
> ning täiendavaid treppimistasemeid optimeeritakse nii paljude tabeldusmärkide kasutamisega kui võimalik.kui võimalik.</para>
<para
>Käivitamisel rakendab see käsk ka treppimise tühikumärkidega ning kui taande laius ei ole määratud, määratakse see täitmise ajal kogu dokumendile poole <option
>tab-width</option
> väärtusele.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Dünaamilise reamurdmise sisselülitamine vastavalt <userinput
>enable</userinput
> väärtusele.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs-save</command
><arg choice="req"
>TÕEVÄÄRTUS enable </arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel asendatakse tabeldusmärgid dokumendi salvestamisel tühimärkidega.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space-save</command
><arg choice="req"
>TÕEVÄÄRTUS enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Sisselülitamisel eemaldatakse dokumendi salvestamisel ridade lõpust tühikud.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-mode</command
><arg choice="req"
>STRING nimi</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab automaatse treppimise režiimiks väärtuse <userinput
>nimi</userinput
>. Kui <userinput
>nimi</userinput
> pole tuntud, on režiimiks 'none' ehk 'puudub'. Sobivad režiimid on 'none', 'normal', 'cstyle', 'haskell', 'lilypond', 'lisp', 'python', 'ruby' ja 'xml'.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-auto-ident</command
><arg choice="req"
>TÕEVÄÄRTUS skript</arg
></cmdsynopsis
></term>
<listitem
><para
>Automaatse treppimise lubamine või keelamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-highlight</command
><arg choice="req"
>STRING highlight</arg
></cmdsynopsis
></term>
<listitem
><para
>Määrab dokumendi süntaksi esiletõstmise süsteemi. Argument peab olema kehtiv esiletõstu nimi, nagu seda näeb näiteks menüüs <menuchoice
><guimenu
>Tööriistad</guimenu
><guisubmenu
>Esiletõstmine</guisubmenu
></menuchoice
>. Käsk võimaldab argumendi lisamisel kasutada automaatset lõpetamist.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>reload-scripts</command
></cmdsynopsis
></term>
<listitem
><para
>Kõigi Kate kasutatud <link linkend="dev-scripting"
>JacaScripti skriptide</link
> taaslaadimine, kaasa arvatud treppimis- ja käsureaskriptid.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-mode</command
><arg choice="req"
>STRING režiim</arg
></cmdsynopsis
></term>
<listitem
><para
>Failitüübi skeemi valimine aktiivsele dokumendile. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>nn[oremap]</command
><arg choice="req"
>STRING originaal</arg
> <arg choice="req"
>STRING seostatud</arg
></cmdsynopsis
></term>
<listitem
><para
>Klahvijada <userinput
>originaal</userinput
> seostamine jadaga <userinput
>seostatud</userinput
>.</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-edit">
<title
>Redigeerimiskäsud</title>

<para
>Nende käskudega saab muuta aktiivset dokumenti.</para>

<variablelist>
<varlistentry>
<term
><cmdsynopsis
><command
>indent</command
></cmdsynopsis
></term>
<listitem
><para
>Trepib valitud read või aktiivse rea.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>unindent</command
></cmdsynopsis
></term>
<listitem
><para
>Eemaldab valitud ridade või aktiivse rea treppimise.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>cleanindent</command
></cmdsynopsis
></term>
<listitem
><para
>Puhastab valitud ridade või aktiivse rea treppimise vastavalt dokumendi treppimisseadistustele. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>comment</command
></cmdsynopsis
></term>
<listitem
><para
>Lisab kommentaarimärgid, millega muuta valik või valitud read või aktiivne rida kommentaariks vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>uncomment</command
></cmdsynopsis
></term>
<listitem
><para
>Eemaldab kommentaarimärgid valikult või valitud ridadelt või aktiivselt realt vastavalt tekstivormindusele, mille määrab dokumendi süntaksi esiletõstu definitsioon.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>kill-line</command
></cmdsynopsis
></term>
<listitem
><para
>Kustutab aktiivse rea.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>replace</command
><arg choice="req"
> STRING muster</arg
> <arg choice="req"
>STRING asendus</arg
></cmdsynopsis
></term>
<listitem
><para
>Asendab teksti, mille määrab <userinput
>muster</userinput
>, tekstiga, mille määrab <userinput
>asendus</userinput
>. Kui soovid, et <userinput
>muster</userinput
> sisaldaks tühimärki, tuleb nii <userinput
>muster</userinput
> kui ka <userinput
>asendus</userinput
> muuta ühe- või kahekordsete jutumärkidega tsitaadiks. Kui argumendid pole tsiteeritud, arvab käsk, et esimene sõna on <userinput
>muster</userinput
> ja ülejäänud <userinput
>asendus</userinput
>. Kui <userinput
>asendus</userinput
> andmata jätta, eemaldatakse kogu tekst, kus esineb <userinput
>muster</userinput
>.</para>
<para
>Otsingule võib lisada lippe, milleks kirjuta koolon ja selle järele vajalik täht või tähed, nii et käsk võtab kuju <userinput
>replace:võtmed muster asendus</userinput
>. Kasutada saab järgmisi võtmeid: <variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Otsing ainult valikus.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing. Selle korral võid anda <userinput
>\N</userinput
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>p</userinput
></term>
<listitem
><para
>Loa küsimine järgmise asenduse korral.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Ainult täissõnade sobivus.</para
></listitem>
</varlistentry>

</variablelist>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>date</command
><arg choice="req"
>STRING vorming</arg
></cmdsynopsis
></term>
<listitem
><para
>Kuupäeva/kellaajastring lisamine kujul, nagu selle määrab <userinput
>vorming</userinput
> või kui seda pole antud, siis kujul <quote
>yyyy-MM-dd hh:mm:ss</quote
>. Argument <userinput
>vorming</userinput
> võib esineda järgmisel kujul: <informaltable
> <tgroup cols="2"
> <tbody>
<row
><entry
><literal
>d</literal
></entry
><entry
>Päev arvuna ilma alustava nullita (1-31).</entry
></row>
<row
><entry
><literal
>dd</literal
></entry
><entry
>Päev arvuna alustava nulliga (01-31).</entry
></row>
<row
><entry
><literal
>ddd</literal
></entry
><entry
>Lühendatud ja lokaliseeritud päevanimi (nt. 'Esm', 'Püh').</entry
></row>
<row
><entry
><literal
>dddd</literal
></entry
><entry
>Pikk ja lokaliseeritud päevanimi (nt. 'Esmaspäev', 'Pühapäev').</entry
></row>
<row
><entry
><literal
>M</literal
></entry
><entry
>Kuu arvuna ilma alustava nullita (1-12).</entry
></row>
<row
><entry
><literal
>MM</literal
></entry
><entry
>Kuu arvuna alustava nulliga (01-12).</entry
></row>
<row
><entry
><literal
>MMMM</literal
></entry
><entry
>Lühendatud ja lokaliseeritud kuunimi (nt. 'Jaan', 'Dets').</entry
></row>
<row
><entry
><literal
>MMM</literal
></entry
><entry
>Lühendatud ja lokaliseeritud kuunimi (nt. 'Jaan', 'Dets').</entry
></row>
<row
><entry
><literal
>yy</literal
></entry
><entry
>Aasta kahekohalise arvuna (00-99).</entry
></row>
<row
><entry
><literal
>yyyy</literal
></entry
><entry
>Aasta neljakohalise arvuna (1752-8000).</entry
></row>
<row
><entry
><literal
>h</literal
></entry
><entry
>Tunnid ilma alustava nullita (0-23 või 1-12, kui näidatakse AM/PM).</entry
></row>
<row
><entry
><literal
>hh</literal
></entry
><entry
>Tunnid alustava nulliga (00-23 või 01-12, kui näidatakse AM/PM).</entry
></row>
<row
><entry
><literal
>m</literal
></entry
><entry
>Minutid ilma alustava nullita (0-59).</entry
></row>
<row
><entry
><literal
>mm</literal
></entry
><entry
>Minutid alustava nulliga (00-59).</entry
></row>
<row
><entry
><literal
>s</literal
></entry
><entry
>Sekundid ilma alustava nullita (0-59).</entry
></row>
<row
><entry
><literal
>ss</literal
></entry
><entry
>Sekundid alustava nulliga (00-59).</entry
></row>
<row
><entry
><literal
>z</literal
></entry
><entry
>Millisekundid ilma alustava nullita (0-999).</entry
></row>
<row
><entry
><literal
>zzz</literal
></entry
><entry
>Millisekundid alustava nulliga (000-999).</entry
></row>
<row
><entry
><literal
>AP</literal
></entry
><entry
>AM/PM kasutamine. AP asemele pannakse kas "AM" või "PM".</entry
></row>
<row
><entry
><literal
>ap</literal
></entry
><entry
>am/pm kasutamine. ap asemele pannakse kas "am" või "pm".</entry
></row>
</tbody>
</tgroup>
</informaltable>

</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>char</command
><arg choice="req"
>STRING identifikaator</arg
></cmdsynopsis
></term>
<listitem>
<para
>See võimaldab sisestada tähemärke nende numbrilise koodi kaudu kümnend-, kaheksand- või kuueteistkümnendvormis. Selle kasutamiseks käivita redigeerimiskäsu dialoog, kirjuta sisendikasti <userinput
>char: [number]</userinput
> ja klõpsa nupule <guibutton
>OK</guibutton
>.</para>

<example>
<title
><command
>char</command
> näited</title>

<para
>Sisend: <userinput
>char:234</userinput
></para>
<para
>Väljund: <computeroutput
>&#234;</computeroutput
></para>
<para
>Sisend: <userinput
>char:0x1234</userinput
></para>
<para
>Väljund: <computeroutput
>&#x1234;</computeroutput
></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term>
<indexterm
><primary
>Asendamine sed-stiilis</primary>
<secondary
>Otsimine sed-stiilis</secondary
></indexterm>
<command
>s///[ig]</command
> <command
>%s///[ig]</command
></term>

<listitem>
<para
>See käsk käivitab sedi-sarnase otsi/asenda-operatsiooni aktiivsel real või kogu failis (<command
>%s///</command
>).</para>

<para
>Nii otsitakse tekst läbi, et leida sobivused <emphasis
>otsingumustriga</emphasis
>, st esimese ja teise kaldkriipsu vahele jääva regulaaravaldisega. Kui sobivus leitakse, asendatakse sobiv tekstiosa avaldisega stringi keskmise ja viimase kaldkriipsu vahel. Sulud otsingumustris tekitavad <emphasis
>tagasiviidad</emphasis
>, see tähendab, et käsk peab meeles, milline osa sobivusest vastas sulgudes olnule; neid stringe saab otsingumustris uuesti kasutada, viidates neile esimese sulukombinatsiooni puhul kui <userinput
>\1</userinput
>, teise puhul kui <userinput
>\2</userinput
> jne.</para>

<para
>Otsimaks märki <literal
>(</literal
> või <literal
>)</literal
>, tuleb need <emphasis
>varjestada</emphasis
> längkriipsu kasutades: <userinput
>\(\)</userinput
></para>

<para
>Kui kirjutada avaldise lõppu <userinput
>i</userinput
>, ei arvestata sobivuse juures tõstu ehk tähesuurust. Kui kirjutada lõppu <userinput
>g</userinput
>, asendatakse kõik mustri sobivused, muidu asendatakse ainult esimene sobivus.</para>

<example>

<title
>Teksti asendamine aktiivses reas</title>

<para
>Armas arvuti katkestas just äsja töö ja teatas, et lähtefaili real 3902 mainitud klass <classname
>myClass</classname
> ei ole defineeritud.</para>

<para
>&quot;Neetud!&quot; mõtled sina: aga muidugi peab see olema <classname
>MyClass</classname
>. Lähed siis reale 3092 ja selle asemel, et püüda tekstist sõnakest üles leida, käivitad redigeerimiskäsu dialoogi, sisestad seal <userinput
>s/myclass/MyClass</userinput
>, vajutad nupule <guibutton
>OK</guibutton
>, salvestad faili ja kompileerid selle &ndash; edukalt ja ilma vigadeta.</para>

</example>

<example>
<title
>Teksti asendamine kogu failis</title>

<para
>Kujuta ette, et sul on fail, kus esineb mitu korda <quote
>preili Maasikas</quote
>, ja siis tuleb keegi, kes ütleb, et too neiu äsja abiellus ja kannab nüüd nime <quote
>proua Vaarikas</quote
>. On päris mõistetav, et sind tabab võitmatu iha kirjutada kõikjal tekstis <quote
>preili Maasikas</quote
> asemele <quote
>proua Vaarikas</quote
>.</para>

<para
>Selleks käivita käsurida, anna käsk <userinput
>%s/preili Maasikas/proua Vaarikas/</userinput
>, vajuta klahvi Enter - ja asendused ongi tehtud.</para>

</example>

<example>
<title
>Nõudlikum näide</title>

<para
>See näide selgitab <emphasis
>tagasiviidete</emphasis
> ja <emphasis
>märgiklasside</emphasis
> kasutamist (kui sa ei tea, mis need on, vaata selgitusi edaspidi viidatud dokumentides).</para>

<para
>Oletame, et sul on selline rida: <programlisting
>void MyClass::DoStringOps( String      &amp;foo, String &amp;bar, String *p, int  &amp;a, int &amp;b )</programlisting>
</para>
<para
>Äkki taipad, et see pole mitte kõige kaunim kood, ja otsustad kasutada võtit <constant
>const</constant
> kõigi <quote
>aadressiargumentide</quote
> puhul (need on need, mille puhul argumendi ees seisab operaator &amp;). Ühtlasi tahad ühtlustada tühikute kasutamist, nii et iga sõna vahel oleks vaid üks tühik.</para>

<para
>Käivita redigeerimiskäsu dialoog ja sisesta sinna: <userinput
>s/\s+(\w+)\s+(&amp;)/ const \1 \2/g</userinput
> ning vajuta nuppu <guibutton
>OK</guibutton
>. Avaldise lõpus paiknev <userinput
>g</userinput
> annab regulaaravaldisele korralduse rekompileerida iga sobivus <emphasis
>tagasiviidete</emphasis
> säilitamiseks.</para>

<para
>Väljund: <computeroutput
>void MyClass::DoStringOps( const String &amp;foo, const String &amp;bar, String *p, const int &amp;a, const int &amp;b )</computeroutput
></para>

<para
>Ja ongi valmis! Mis siis tegelikult juhtus? Juhtus see, et me otsisime tühikut (<literal
>\s+</literal
>), millele järgneks üks või enam tähte (<literal
>\w+</literal
>), millele omakorda järgneks tühik (<literal
>\s+</literal
>) ja sellele omakorda ja-märk. Otsingu käigus salvestasime tähekombinatsioonid ja ja-märgid edasiseks kasutamiseks asendusoperatsioonis. Seejärel asendasime sobinud kohad tühikuga, millele järgneb <quote
>const</quote
>, millele järgneb tühik, millele järgneb meelde jäetud tähekombinatsioon (<literal
>\1</literal
>, millele järgneb tühik, millele järgneb meelde jäetud ja-märk (<literal
>\2</literal
>). Lihtne, eks ju?</para>

<para
>Pane tähele, et mõnel juhul oli täheühendiks <quote
>String</quote
>, mõnel juhul aga <quote
>int</quote
>, nii et märgiklassi <literal
>\w</literal
> ja kvantori <literal
>+</literal
> kasutamine oli väga mõistlik tegu.</para>

</example>

</listitem>

</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>sort</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud teksti või kogu dokumendi sortimine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>natsort</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade või kogu dokumendi loomulik sortimine.</para>

<example>
<title
><command
>sort</command
> vs. <command
>natsort</command
></title>
<para
><userinput
><command
>sort</command
>(a10, a1, a2)</userinput
> tagastab <computeroutput
>a1, a10, a2</computeroutput
></para>
<para
><userinput
><command
>natsort</command
>(a10, a1, a2)</userinput
> tagastab <computeroutput
>a1, a2, a10</computeroutput
></para>
</example
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>moveLinesDown</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade liigutamine alla.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>moveLinesUp</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade liigutamine üles.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>uniq</command
></cmdsynopsis
></term>
<listitem
><para
>Topeltridade eemaldamine valitud tekstist või kogu dokumendist.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>rtrim</command
></cmdsynopsis
></term>
<listitem
><para
>Lõputühikute eemaldamine valitud tekstist või kogu dokumendist.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>ltrim</command
></cmdsynopsis
></term>
<listitem
><para
>Algustühikute eemaldamine valitud tekstist või kogu dokumendist.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>join</command
><arg choice="opt"
>STRING eraldaja</arg
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade või kogu dokumendi ühendamine. Lisavõimalusena võib anda parameetri, mis defineerib eraldaja, näiteks: <userinput
><command
>join</command
> ', '</userinput
> </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>rmblank</command
></cmdsynopsis
></term>
<listitem
><para
>Kogu tühiruumi eemaldamine valitud tekstist või kogu dokumendist.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>unwrap</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud teksti või kogu dokumendi reamurdmine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>each</command
><arg choice="req"
>STRING skript</arg
></cmdsynopsis
></term>
<listitem
><para
>Argumendina antud JavaScripti funktsiooni väljakutsumine valitud ridade loendile ja nende asendamine väljakutse tagastatud väärtusega.</para>

<example>
<title
>Valitud ridade ühendamine</title>
<para
><userinput
><command
>each</command
> 'function(lines){return lines.join(", ")}' </userinput
></para>

<para
>Või lühemalt:</para>
<para
><userinput
><command
>each</command
> 'lines.join(", ")'</userinput
></para>
</example>

</listitem>
</varlistentry>



<varlistentry>
<term
><cmdsynopsis
><command
>filter</command
><arg choice="req"
>STRING skript</arg
></cmdsynopsis
></term>
<listitem
><para
>Argumendina antud JavaScripti funktsiooni väljakutsumine valitud ridade loendile ja nende eemaldamine, kui väljakutse tagastab 'väär'.</para>

<example>
<title
>Tühjade ridade eemaldamine</title>
<para
><userinput
><command
>filter</command
> 'function(1){return 1.length 
> 0;}' </userinput
></para>

<para
>Või lühemalt:</para>
<para
><userinput
><command
>filter</command
> 'line.length 
> 0'</userinput
></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>map</command
><arg choice="req"
>STRING skript</arg
></cmdsynopsis
></term>
<listitem
><para
>Argumendina antud JavaScripti funktsiooni väljakutsumine valitud ridade loendile ja rea asendamine väljakutse väärtusega.</para>

<example>
<title
>Tühjade ridade eemaldamine</title>
<para
><userinput
><command
>map</command
> 'function(line){return line.replace(/^s+/,"");}' </userinput
></para>

<para
>Või lühemalt:</para>
<para
><userinput
><command
>map</command
> 'line.replace(/^s+/,"")'</userinput
></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>duplicateLinesUp</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade kloonimine aktiivse valiku kohal.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>duplicateLinesDown</command
></cmdsynopsis
></term>
<listitem
><para
>Valitud ridade kloonimine aktiivse valiku all.</para>
</listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-navigation">
<title
>Liikumiskäsud</title>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>goto</command
><arg choice="req"
>TÄISARV rida</arg
></cmdsynopsis
></term>
<listitem
><para
>Selle käsuga saab liikuda määratud reale.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>grep</command
> <arg choice="req"
>STRING muster</arg
> </cmdsynopsis
></term>
<listitem
><para
>Dokumendis regulaaravaldise <userinput
>mustri</userinput
> otsimine. Täpsemalt kõneleb sellest <xref linkend="regular-expressions"/></para>
</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>find</command
><arg choice="req"
>STRING muster</arg
></cmdsynopsis
></term>
<listitem
><para
>Selle käsuga saab liikuda sinna, kus esimest korda esineb <userinput
>muster</userinput
>. Selle järgmisi esinemisi saab leida menüükäsuga <menuchoice
><guimenu
>Redigeerimine</guimenu
><guimenuitem
>Otsi järgmine</guimenuitem
></menuchoice
> (vaikimisi kiirklahv <keycap
>F3</keycap
>).</para>
<para
>Otsimiskäsku saab täiendavalt seadistada, kui lisada koolon ja selle järele mõni võti, nii et käsk võtab kuju <userinput
>find:võtmed muster</userinput
>. Kasutada saab järgmisi võtmeid:</para>

<variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Otsing ainult valikus.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing. Selle korral võid anda <userinput
>\N</userinput
>, kus N on arv, mis tähistab asendusstringi hõivet.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Ainult täissõnade sobivus.</para
></listitem>
</varlistentry>

</variablelist>
</listitem>

</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>ifind</command
><arg choice="req"
>STRING muster</arg
></cmdsynopsis
></term>
<listitem
><para
>See käsk võimaldab otsimist <quote
>lennult</quote
>, see tähendab, otse kirjutamise ajal. Selle käitumist või otsingut saab seadistada käsule koolonit ja selle järele mõnda võtit lisades, nii et käsk võtaks kuju <userinput
>ifind:võtmed muster</userinput
>. Kasutada saab järgmisi võtmeid <variablelist>
<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Otsing tagasisuunas</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Regulaaravaldise otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>Tõstutundlik otsing.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Otsing alates kursori asukohast.</para
></listitem>
</varlistentry>

</variablelist>
</para
></listitem>
</varlistentry>

</variablelist>

</sect3>


<sect3 id="advanced-editing-tools-commandline-commands-basic">
<title
>Redaktori põhifunktsioonide käsud (need sõltuvad rakendusest, milles redaktorikomponenti kasutatakse)</title>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>w</command
></cmdsynopsis
></term>
<listitem
><para
>Aktiivse dokumendi salvestamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>wa</command
></cmdsynopsis
></term>
<listitem
><para
>Kõigi parajasti avatud dokumendite salvestamine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>q</command
></cmdsynopsis
></term>
<listitem
><para
>Aktiivse dokumendi sulgemine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>qa</command
></cmdsynopsis
></term>
<listitem
><para
>Kõigi avatud dokumentide sulgemine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>wq</command
></cmdsynopsis
></term>
<listitem
><para
>Aktiivse dokumendi salvestamine ja sulgemine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>wqa</command
></cmdsynopsis
></term>
<listitem
><para
>Kõigi parajasti avatud dokumentide salvestamine ja sulgemine.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>x</command
></cmdsynopsis
></term>
<listitem
><para
>Aktiivse dokumendi salvestamine ja sulgemine ainult siis, kui seda on muudetud. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>x</command
></cmdsynopsis
></term>
<listitem
><para
>Kõigi parajasti avatud dokumentide salvestamine ja sulgemine ainult siis, kui neid on muudetud.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>bp</command
></cmdsynopsis
></term>
<listitem
><para
>Liikumine dokumentide nimekirja eelmisele dokumendile. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>bn</command
></cmdsynopsis
></term>
<listitem
><para
>Liikumine dokumentide nimekirja järgmisele dokumendile. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>new</command
></cmdsynopsis
></term>
<listitem
><para
>Uue dokumendi avamine rõhtsalt poolitatud vaates. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>vnew</command
></cmdsynopsis
></term>
<listitem
><para
>Uue dokumendi avamine püstiselt poolitatud vaates. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>e</command
></cmdsynopsis
></term>
<listitem
><para
>Aktiivse dokumendi taaslaadimine, kui seda on kettal muudetud. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>enew</command
></cmdsynopsis
></term>
<listitem
><para
>Uue dokumendi muutmine. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>print</command
></cmdsynopsis
></term>
<listitem
><para
>Trükkimisdialoogi avamine aktiivse dokumendi trükkimiseks. </para
></listitem>
</varlistentry>

</variablelist>

</sect3>


</sect2>

</sect1>

<sect1 id="advanced-editing-tools-code-folding">
<title
>Koodi voltimise kasutamine</title>

<para
>Koodi voltimine võimaldab peita redaktoris dokumendi osi, muutes nii eriti suured dokumendid lihtsamini jälgitavaks.&kappname; arvutab voltimispiirkondi välja süntaksi esiletõstu definitsioonides antud reeglite põhjal, mistõttu see on kasutatav ainult teatud vormingutes - tavaliselt lähtekoodis, XML-märkekeeles ja muude selliste failide korral. Enamik koodivoltimist toetavaid esiletõstu definitsioone lubab ka kasutajal endal määrata voltimispiirkondi, mida tavaliselt tähistavad võtmesõnad <userinput
>BEGIN</userinput
> ja <userinput
>END</userinput
>.</para>

<para
>Koodivoltimise kasutamiseks lülita sisse voltimismärgid käsuga <menuchoice
><guimenu
>Vaade</guimenu
><guimenuitem
>Voltimismärkide näitamine</guimenuitem
></menuchoice
>. Voltimismärkide paneel vasakus servas näitab graafiliselt voltimispiirkondi, kolmnurgad osutavad antud piirkonnas võimalikele toimingutele: alla suunatud kolmnurk tähendab, et piirkond on avatud ning märgil klõpsamine suleb piirkonna, kusjuures selle asemel kuvatakse paremale osutavat kolmnurka.</para>
<!--FIXME change Three to Four when Unfold Toplevel Nodes action is back-->
<para
>Voltimispiirkondades saab kasutada käske, mida tutvustab lähemalt <link linkend="view-code-folding"
>menüükäskude ülevaade</link
>. </para>

<para
>Kokku keritud read peetakse faili sulgemisel meeles, nii et kui faili taas avad, on kokkukeritud sõlmed endiselt kokku keritud. See kehtib ka taaslaadimise kohta.</para>

<para
>Kui sa ei soovi koodivoltimist kasutada, võid eemaldada märke valiku <guilabel
>Voltimismärkide näitamine (kui võimalik)</guilabel
> eest redaktori seadistuste <link linkend="appearance"
>välimuse</link
> kaardil.</para>

</sect1>

</chapter>
