Pokročilé nástroje pre editovanie Zakomentovať/odkomentovať Príkazy pre zakomentovanie a odkomentovanie sú dostupné z menu Nástroje. 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. 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é. 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ý. 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. 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. Pre umiestnenie značiek komentárov použite NástrojeZakomentovať alebo klávesovou skratku, štandardne &Ctrl;#. Pre odstránenie značiek komentárov použite NástrojeOdkomentovať alebo klávesovú skratku, štandardne &Ctrl;&Shift;#. Príkaz pre editovanie Tento nástroj dostupný z menu NástrojePríkaz pre editovanie poskytuje prístup k malej skupine príkazov v štýle vi/vim. Je určený hlavne pre skúsených používatelov, ale nebojte sa využiť jeho možnosti! Momentálne sú dostupné tieto príkazy: čas Tento príkaz vygeneruje aktuálny čas podla počítača vo formáte HH:MM:SS Spustíte ho pomocou dialógu pre editovací príkaz a zadať do vstupného poľa slovo time znak 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 char:[číslo] do textového poľa. Potom stlačte OK. príklady <command >char</command > Vstup: char:234 Výstup: ê Vstup: char:0x1234 Výstup: ê Vstup: char:1232 Výstup: ê s///[ig] %s///[ig] Tento príkaz robí operáciu hladania/nahradenia podobnú sed na aktuálnom riadku alebo na celom súbore (%s///). V krátkosti, text sa prehladá podla vzorky hladania, 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ú spätné referencie, č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 \1 pre prvý pár zátvoriek, \2 pre druhý atd. Pre hladanie symbolu ( alebo ) ich musíte označiť, (escape) pomocou spätného lomítka: \(\) Ak na koniec výrazu pridáte i, hladanie nebude rozlišovať velkosť písmen. Náhrada textu na aktuálnom riadku Váš prekladač práve skončil a oznámil vám, že mojaTrieda na riadku 3902 nie je vo vašom zdrojovom kóde definovaná. Poviete si: "Ach jo!". Samozrejme, že to je MojaTrieda. Prejdete na riadok 3902 a namiesto hľadania slova v texte, spustíte dialóg pre editovací príkaz a zadáte s/mojatrieda/MojaTrieda/i a stlačíte OK. Uložíte súbor a spustíte kompilátor – a preklad je bez chýb. Náhrada textu v celom súbore Predstavte si, že máte súbor, ktorý hovorí niekoľkokrát o Miss Jensen. V tom ale niekto príde a oznámi vám, že sa práve vydala za pána Jonesa. Takže musíte každné Miss Jensen prepísať na Ms Jones. Spustíte ho pomocou dialógu pre editovací príkaz. Potom zadajte %s/Miss Jensen/Ms Jones/ a stlačte enter. Zložitejší príklad Tento príklad používa spätné referencie spolu so triedou slov (ak neviete, čo to je, prečítajte si súvisiacu dokumentáciu, ktorá je zmienená dole). Predpokladajme takýto riadok: void MyClass::DoStringOps( String &foo, String &bar String *p, int &a, int &b ) Teraz si uvedomíte, že to nie je pekný kód a rozhodnete sa použiť kľúčové slovo const rpe všetky adresy 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. Spustíte dialóg pre editovací príkaz, zadáte s/\s+(\w+)\s+(&)/ const \1 \2/g a stlačíte OK, g na konci výrazu znamená, že sa má regulárny výraz po každom nájdení textu znovu preložiť, aby sa spätná referencia uložila. Výstup: void MyClass::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &b ) Hotovo! A čo sa vlastne stalo? Hľadali sme medzery (\s+), za ktorými je jeden alebo viac písmen (\w+), za ktorými sú zase nejaké medzery (\s+) 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 const zase s jednou medzerou a potom nájdené písmená, medzera a náš uložený ampersand (\2). V niektorých prípadoch boli písmená String, inokedy int, takže použitím triedy písmen \w a operátora + sa nám naozaj hodilo. Toto je velmi silný nástroj. Aj ked je možné túto operáciu vrátiť použitím Vrátiť späť 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 sed alebo regulárnymi výrazmi v jazyku perl.