You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
282 lines
8.2 KiB
282 lines
8.2 KiB
13 years ago
|
<chapter id="advanced-editing-tools">
|
||
|
<title
|
||
|
>Pokročilé nástroje pre editovanie</title>
|
||
|
|
||
|
<sect1 id="comment">
|
||
|
|
||
|
<title
|
||
|
>Zakomentovať/odkomentovať</title>
|
||
|
|
||
|
<para
|
||
|
>Príkazy pre zakomentovanie a odkomentovanie sú dostupné z menu <guimenu
|
||
|
>Nástroje</guimenu
|
||
|
>. Umožňujú pridať alebo odstrániť značky komentára do výberu alebo na aktuálny riadok v prípade, že žiadny text vybraný nie je. Komentáre sú podporované formátom textu, ktorý editujete.</para>
|
||
|
|
||
|
<para
|
||
|
>Pravidlá na to, ako sa označujú komentáre, sú definované v definícii syntaxu, takže ak nie je zvýraznenie použité, zakomentovanie a odkomentovanie nie je možné.</para>
|
||
|
|
||
|
<para
|
||
|
>Niekto formáty definujú komentáre je jeden riadok, niektoré pre viac riadkov naraz a niektoré obidva typy. Ak nie sú dostupné pravidlá pre viac riadkov, posledný riadok výberu nebude zakomentovaný.</para>
|
||
|
|
||
|
<para
|
||
|
>Ak sú dostupné komentáre pre jeden riadok, zakomentovaniu jedného riadku sa dáva prednosť, pretože to bráni problémom s vnorenými komentármi.</para>
|
||
|
|
||
|
<para
|
||
|
>Pri odkomentovaní by nemal byť vybraný žiadny text. Pri odstraňovaní viacriadkových komentárov z výberu sa ignorujú všetky medzery okolo značiek komentárov.</para>
|
||
|
|
||
|
<para
|
||
|
>Pre umiestnenie značiek komentárov použite <menuchoice
|
||
|
><guimenu
|
||
|
>Nástroje</guimenu
|
||
|
><guimenuitem
|
||
|
>Zakomentovať</guimenuitem
|
||
|
></menuchoice
|
||
|
> alebo klávesovou skratku, štandardne <keycombo action="simul"
|
||
|
>&Ctrl;<keycap
|
||
|
>#</keycap
|
||
|
></keycombo
|
||
|
>.</para>
|
||
|
|
||
|
<para
|
||
|
>Pre odstránenie značiek komentárov použite <menuchoice
|
||
|
><guimenu
|
||
|
>Nástroje</guimenu
|
||
|
><guimenuitem
|
||
|
>Odkomentovať</guimenuitem
|
||
|
></menuchoice
|
||
|
> alebo klávesovú skratku, štandardne <keycombo action="simul"
|
||
|
>&Ctrl;&Shift;<keycap
|
||
|
>#</keycap
|
||
|
></keycombo
|
||
|
>.</para>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="edit-command">
|
||
|
|
||
|
<title
|
||
|
>Príkaz pre editovanie</title>
|
||
|
|
||
|
<para
|
||
|
>Tento nástroj dostupný z menu <menuchoice
|
||
|
><guimenu
|
||
|
>Nástroje</guimenu
|
||
|
><guimenuitem
|
||
|
>Príkaz pre editovanie</guimenuitem
|
||
|
></menuchoice
|
||
|
> poskytuje prístup k malej skupine príkazov v štýle <application
|
||
|
>vi</application
|
||
|
>/<application
|
||
|
>vim</application
|
||
|
>. Je určený hlavne pre skúsených používatelov, ale nebojte sa využiť jeho možnosti!</para>
|
||
|
|
||
|
<para
|
||
|
>Momentálne sú dostupné tieto príkazy:</para>
|
||
|
|
||
|
<variablelist
|
||
|
> <varlistentry
|
||
|
> <term
|
||
|
><command
|
||
|
>čas</command
|
||
|
></term
|
||
|
> <listitem
|
||
|
> <para
|
||
|
>Tento príkaz vygeneruje aktuálny čas podla počítača vo formáte <quote
|
||
|
>HH:MM:SS</quote
|
||
|
></para
|
||
|
> <para
|
||
|
>Spustíte ho pomocou dialógu pre editovací príkaz a zadať do vstupného poľa slovo <userinput
|
||
|
>time</userinput
|
||
|
></para
|
||
|
> </listitem
|
||
|
> </varlistentry
|
||
|
> <varlistentry
|
||
|
> <term
|
||
|
><command
|
||
|
>znak</command
|
||
|
></term
|
||
|
> <listitem
|
||
|
> <para
|
||
|
>Tento príkaz umožňuje vložiť rôzne znaky pomocou ich číselnej reprezentácie v desiatkovej, osmičkovej alebo šesťnástkovej sústave. Použijete ho pomocou dialógu pre editovací príkaz a zadaním <userinput
|
||
|
>char:[číslo]</userinput
|
||
|
> do textového poľa. Potom stlačte <guibutton
|
||
|
>OK</guibutton
|
||
|
>.</para
|
||
|
> <example
|
||
|
> <title
|
||
|
>príklady <command
|
||
|
>char</command
|
||
|
></title
|
||
|
> <para
|
||
|
>Vstup: <userinput
|
||
|
>char:234</userinput
|
||
|
></para
|
||
|
> <para
|
||
|
>Výstup: <computeroutput
|
||
|
>ê</computeroutput
|
||
|
></para
|
||
|
> <para
|
||
|
>Vstup: <userinput
|
||
|
>char:0x1234</userinput
|
||
|
></para
|
||
|
> <para
|
||
|
>Výstup: <computeroutput
|
||
|
>ê</computeroutput
|
||
|
></para
|
||
|
> <para
|
||
|
>Vstup: <userinput
|
||
|
>char:1232</userinput
|
||
|
></para
|
||
|
> <para
|
||
|
>Výstup: <computeroutput
|
||
|
>ê</computeroutput
|
||
|
></para
|
||
|
> </example
|
||
|
> </listitem
|
||
|
> </varlistentry
|
||
|
> <varlistentry
|
||
|
> <term
|
||
|
><command
|
||
|
>s///[ig]</command
|
||
|
> <command
|
||
|
>%s///[ig]</command
|
||
|
></term
|
||
|
> <listitem
|
||
|
> <para
|
||
|
>Tento príkaz robí operáciu hladania/nahradenia podobnú sed na aktuálnom riadku alebo na celom súbore (<command
|
||
|
>%s///</command
|
||
|
>).</para
|
||
|
> <para
|
||
|
>V krátkosti, text sa prehladá podla <emphasis
|
||
|
>vzorky hladania</emphasis
|
||
|
>, regulárneho výrazu medzi prvým a druhým lomítkom a ak sa nejaký text nájde, odpovedajúca časť sa nahratí výrazom medzi stredným a koncom reťazca. Zátvorky vo vzorky vytvárajú <emphasis
|
||
|
>spätné referencie</emphasis
|
||
|
>, čiže príkaz si zapamätá, ktorá časť odpovedá zátvorkám. Tieto reťazce je potom možné znovu použiť vo vzorke pre nahradenie použitím <userinput
|
||
|
>\1</userinput
|
||
|
> pre prvý pár zátvoriek, <userinput
|
||
|
>\2</userinput
|
||
|
> pre druhý atd.</para
|
||
|
> <para
|
||
|
>Pre hladanie symbolu <literal
|
||
|
>(</literal
|
||
|
> alebo <literal
|
||
|
>)</literal
|
||
|
> ich musíte označiť, (<emphasis
|
||
|
>escape</emphasis
|
||
|
>) pomocou spätného lomítka: <userinput
|
||
|
>\(\)</userinput
|
||
|
></para
|
||
|
> <para
|
||
|
>Ak na koniec výrazu pridáte <userinput
|
||
|
>i</userinput
|
||
|
>, hladanie nebude rozlišovať velkosť písmen.</para
|
||
|
> <example
|
||
|
> <title
|
||
|
>Náhrada textu na aktuálnom riadku</title
|
||
|
> <para
|
||
|
>Váš prekladač práve skončil a oznámil vám, že <classname
|
||
|
>mojaTrieda</classname
|
||
|
> na riadku 3902 nie je vo vašom zdrojovom kóde definovaná.</para
|
||
|
> <para
|
||
|
>Poviete si: "Ach jo!". Samozrejme, že to je <classname
|
||
|
>MojaTrieda</classname
|
||
|
>. Prejdete na riadok 3902 a namiesto hľadania slova v texte, spustíte dialóg pre editovací príkaz a zadáte <userinput
|
||
|
>s/mojatrieda/MojaTrieda/i</userinput
|
||
|
> a stlačíte <guibutton
|
||
|
>OK</guibutton
|
||
|
>. Uložíte súbor a spustíte kompilátor – a preklad je bez chýb.</para
|
||
|
> </example
|
||
|
> <example
|
||
|
> <title
|
||
|
>Náhrada textu v celom súbore</title
|
||
|
> <para
|
||
|
>Predstavte si, že máte súbor, ktorý hovorí niekoľkokrát o <quote
|
||
|
>Miss Jensen</quote
|
||
|
>. V tom ale niekto príde a oznámi vám, že sa práve vydala za <quote
|
||
|
>pána Jonesa</quote
|
||
|
>. Takže musíte každné <quote
|
||
|
>Miss Jensen</quote
|
||
|
> prepísať na <quote
|
||
|
>Ms Jones</quote
|
||
|
>.</para
|
||
|
> <para
|
||
|
>Spustíte ho pomocou dialógu pre editovací príkaz. Potom zadajte <userinput
|
||
|
>%s/Miss Jensen/Ms Jones/</userinput
|
||
|
> a stlačte enter.</para
|
||
|
> </example
|
||
|
> <example
|
||
|
> <title
|
||
|
>Zložitejší príklad</title
|
||
|
> <para
|
||
|
>Tento príklad používa <emphasis
|
||
|
>spätné referencie</emphasis
|
||
|
> spolu so <emphasis
|
||
|
>triedou slov</emphasis
|
||
|
> (ak neviete, čo to je, prečítajte si súvisiacu dokumentáciu, ktorá je zmienená dole).</para
|
||
|
> <para
|
||
|
>Predpokladajme takýto riadok: <programlisting
|
||
|
>void MyClass::DoStringOps( String &foo, String &bar String *p, int &a, int &b )</programlisting
|
||
|
> </para
|
||
|
> <para
|
||
|
>Teraz si uvedomíte, že to nie je pekný kód a rozhodnete sa použiť kľúčové slovo <constant
|
||
|
>const</constant
|
||
|
> rpe všetky <quote
|
||
|
>adresy</quote
|
||
|
> argumentov, ktoré sú označené operátorom &. Chceli by ste aj vynechať zbytočné medzery tak, aby medzi každým slovom bola iba jedna medzera.</para
|
||
|
> <para
|
||
|
>Spustíte dialóg pre editovací príkaz, zadáte <userinput
|
||
|
>s/\s+(\w+)\s+(&)/ const \1 \2/g</userinput
|
||
|
> a stlačíte <guibutton
|
||
|
>OK</guibutton
|
||
|
>, <userinput
|
||
|
>g</userinput
|
||
|
> na konci výrazu znamená, že sa má regulárny výraz po každom nájdení textu znovu preložiť, aby sa <emphasis
|
||
|
>spätná referencia</emphasis
|
||
|
> uložila.</para
|
||
|
> <para
|
||
|
>Výstup: <computeroutput
|
||
|
>void MyClass::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &b )</computeroutput
|
||
|
></para
|
||
|
> <para
|
||
|
>Hotovo! A čo sa vlastne stalo? Hľadali sme medzery (<literal
|
||
|
>\s+</literal
|
||
|
>), za ktorými je jeden alebo viac písmen (<literal
|
||
|
>\w+</literal
|
||
|
>), za ktorými sú zase nejaké medzery (<literal
|
||
|
>\s+</literal
|
||
|
>) ukončené &. Pritom sme uložili písmená a operátor & pre použitie v operácii nahradenia. Potom sme vložili nájdený text s jednou medzerou pred, za ňou sme dali <literal
|
||
|
>const</literal
|
||
|
> zase s jednou medzerou a potom nájdené písmená, medzera a náš uložený ampersand (<literal
|
||
|
>\2</literal
|
||
|
>).</para
|
||
|
> <para
|
||
|
>V niektorých prípadoch boli písmená <quote
|
||
|
>String</quote
|
||
|
>, inokedy <quote
|
||
|
>int</quote
|
||
|
>, takže použitím triedy písmen <literal
|
||
|
>\w</literal
|
||
|
> a operátora <literal
|
||
|
>+</literal
|
||
|
> sa nám naozaj hodilo.</para
|
||
|
> </example
|
||
|
> </listitem
|
||
|
> </varlistentry
|
||
|
> </variablelist>
|
||
|
|
||
|
<warning>
|
||
|
<para
|
||
|
>Toto je velmi silný nástroj. Aj ked je možné túto operáciu vrátiť použitím <menuchoice
|
||
|
><guimenuitem
|
||
|
>Vrátiť späť</guimenuitem
|
||
|
></menuchoice
|
||
|
> odpovedajúcim počtom krát, doporučujem, aby ste si ho najprv trochu natrénovali pre skutočné použitie v prípade, že nemáte moc skústeností s aplikáciou <application
|
||
|
>sed</application
|
||
|
> alebo regulárnymi výrazmi v jazyku perl.</para>
|
||
|
</warning>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
</chapter>
|
||
|
|