Nedit - editor ASCII text∙

27. 4. 1999on-line novΘ okno dom∙ p°edchozφ Φlßnek nßsledujφcφ Φlßnek

V tomto Φlßnku bych vßm rßd p°edstavil textov² editor Nedit. Mßm k n∞mu velice v°el² vztah a pova╛uji ho jeden z nejlep╣φch editor∙ ASCII text∙ v∙bec.

Editor Nedit je program firmy Fermi National Accelerator Laboratory. Jak je pod linuxem dobr²m zvykem, produkt je nekomerΦnφho charakteru. Nedit vyu╛φvß knihovnu Motif. Pokud ji nemßte, je k dispozici staticky slinkovanß verze. Mimoto m∙╛ete pou╛φt knihovnu Lesstif jako nßhradu za Motif. Linux nenφ jedinou platformou, pod kterou Nedit b∞╛φ. Jsou podporovßny snad v╣echny unixy. Ve ╣kole pou╛φvßm verzi pro DEC Alphy.

Obrßzek 1 Editace C++ k≤du v Neditu (klikni pro v∞t╣φ obrßzek)


Jak u╛ jsem napsal, Nedit je editor ASCII text∙. Mß velice p°φjemnΘ rozhranφ a spoustu vlastnostφ, kterΘ zp°φjem≥ujφ ╛ivot. Navφc je vysoce konfigurovateln². Co to vlastn∞ umφ?

Obrßzek 2 - OznaΦen² nßzev hlaviΦkovΘho souboru


V menu File najdete obligßtnφ funkce jako New, Open, Save, Save as a Close a v dne╣nφ dob∞ u╛ obvyklou funkci Open previous. Funkce Open selected se pokusφ otev°φt dokument, kter² je v textu oznaΦen my╣φ (jako Primarnφ v²b∞r). Nap°φklad pokud chcete otev°φt hlaviΦkov² soubor, dvojit²m kliknutφm oznaΦφte jeho nßzev a stisknete Ctrl-y. To je v╣e. Viz obrßzek 2. Snad bych mohl k otevφrßnφ soubor∙ je╣t∞ poznamenat, ╛e ka╛d² editovan² soubor mß vlastnφ okno.
Dal╣φ funkcφ je Revert to saved, kterß zru╣φ v╣echny zm∞ny od poslednφho ulo╛enφ souboru. Pak jsou zde je╣t∞ funkce jako Include File, Load Macro File a Load Tags File. Pro tisk slou╛φ funkce Print a Print Selection.

Obrßzek 3 - Paste column v akci Dal╣φ menu je menu Edit. To obsahuje obvyklΘ funkce Cut, Copy, Paste, Undo a Redo. Poslednφ dv∞ majφ asi neomezenou historii. Zajφmavostφ je Paste Column. Tato funkce vlo╛φ na mφsto kurzoru text ze schrßnky jako sloupec. Pokud mßte nap°φklad data °azena po °ßdcφch a chcete je dßt do sloupeΦk∙, urychlφte si tφm prßci n∞kolikrßt. Jak na to? OznaΦφte si n∞kolik °ßdk∙ a p°φkazem Cut (Ctrl-x) je vyjmete. Na obrßzku 3 jsem tuto akci provedl, jen mφsto vyjmutφ jsem pou╛il kopφrovßnφ.

Dal╣φ dv∞ funkce jsou unikßtnφ - Shift Left a Shift Right. Co d∞lajφ? Posunou cel² v²b∞r doleva Φi doprava. Takto je mo╛nΘ si velice jednodu╣e odsadit text podle sv²ch p°edstav. Zvlß╣t∞ s kombinacφ obdΘlnφkovΘho v²b∞ru. Co to je? Pokud dr╛φte tlaΦφtko Ctrl b∞hem oznaΦovßnφ v²b∞ru (my╣φ Φi klßvesnicφ), z textu se oznaΦuje jen obdΘlnφk dan² zaΦßtkem oznaΦovßnφ a pozicφ kurzoru. Tak╛e pokud chcete vsunout mezi Φφsla z minulΘho p°φkazu dv∞ mezery, oznaΦφte si je do obdΘlnφkovΘho bloku a dvakrßt stisknete Ctrl-0. Hotovo. Viz obrßzek 4. Pak zb²vajφ funkce Upper-case a Lower-case, kterΘ m∞nφ velikost pφsmenek a Fill Paragraph, kter² se pokusφ vyplnit odstavec zm∞nou bφl²ch znak∙.

Obrßzek 4 - Shift rightT°etφ menu je Search. Jeho prvnφ polo╛kou je Find. V n∞m se zadßvß text, kter² se mß vyhledat. Pomocφ p°epφnaΦ∙ je mo╛nΘ nastavit chovßnφ tΘto funkce jako je t°eba sm∞r vyhledßvßnφ a rozli╣ovßnφ mal²ch a velk²ch pφsmenek. TakΘ je mo╛nΘ urΦit, ╛e zadan² text je regulßrnφ v²raz. Navφc pomocφ ╣ipek je mo╛nΘ prochßzet historiφ vyhledßvßnφ. Dal╣φ polo╛kou je Find Selection, kde prohledßvßnφ je omezeno jen na oznaΦen² text. Nßsledujφ funkce Replace a Replace Selection, kterΘ nahrazujφ nalezen² text.
Funkce Goto Line Number, jak nßzev napovφdß, p°esune kurzor na urΦen² °ßdek. P°φkaz Mark vytvo°φ n∞co jako zßlo╛ku na aktußlnφ pozici kurzoru a po jejφ vybrßnφ p°φkazem Goto Mark se cel² blok mezi aktußlnφ pozicφ a zßlo╛kou oznaΦφ. UΦel pochopφte, a╛ budete chtφt vyjmout blok dlouh² n∞kolik tisφc °ßdk∙. Pak je zde funkce Match. Ta oznaΦφ do bloku text mezi dv∞ma pßrov²mi znaky (kulatΘ, hranatΘ a slo╛enΘ zßvorky a znaky <>). StaΦφ dßt kurzor za prvnφ znak, stisknout Ctrl-m a je to. Pak u╛ zb²vß jen funkce Find Definition, urΦenß pro programßtory pou╛φvajφcφ program ctags.

Nßsledujφcφ menu se naz²vß Preferences. V n∞m se nastavuje chovßnφ a vzhled editoru. Pro n∞kolik nejd∙le╛it∞j╣φch typ∙ subor∙ mß Nedit takzvanΘ jazykovΘ mody (language modes). Namßtkou bych mohl vyjmenovat jazyky C, C++, Java, HTML, Perl, Latex a Makefile. Pokud pro otev°en² soubor neexistuje ╛ßdn² mod, pou╛ije se mod Plain. Co je to mod? V podstat∞ je to kolekce pravidel popisujφcφch elementy jazyka. Ke ka╛dΘmu pravidlu m∙╛ete urΦit font a barvu. V²sledek? P°ehlednΘ zobrazenφ va╣eho textu. Viz obrßzek 1 a 5.

Obrßzek 5 - Editace HTML strßnky (klikni pro v∞t╣φ obrßzek)


Pokud Vß╣ oblφben² jazyk nenφ podporovßn, pak nenφ nic snaz╣φho, ne╛ si tuto podporu p°idat sßm. Krom∞ jazykov²ch mod∙ je mo╛nΘ urΦit zp∙sob odsazovßnφ a lßmßnφ dlouh²ch °ßdk∙, tabulßtory, font i vytvß°enφ zßlo╛nφ kopie. V podmenu Default Settings je mimoto mo╛nΘ si upravit menu Shell a Macro na mφru. A tady se projevuje sφla editoru naplno.

Rozeberme si nejd°φve menu Shell. V hornφ Φßsti menu jsou p°φkazy na spoluprßci s externφmi programy. Prvnφ p°φkaz se jmenuje Execute Command. Po jeho zvolenφ se objevφ dialogovΘ okna, kam se zadß po╛adovan² p°φkaz. Jeho v²stup se potom umφstφ na aktußlnφ pozici. Jak² to mß v²znam? Nemusφte ve vedlej╣φm okn∞ spou╣t∞t xterm, p°φkaz a pak p°es v²b∞r p°enß╣et po╛adovanß data zp∞t do Neditu. Podobn∞ se chovß p°φkaz Execute Command line, kter² v╣ak vykonß aktußlnφ °ßdku. Na obrßzku 6 je uveden p°φklad s v²pisem aktußlnφho adresß°e.

Obrßzek 6 - vlo╛enφ v²pisu aktußlnφho adresß°e (klikni pro v∞t╣φ obrßzek)


Dal╣φm p°φkazem je Filter Selection. V dialogu zadßte p°φkaz, na jeho╛ standardnφ vstup se p°enese obsah v²b∞ru. Jeho v²stup pak nahradφ tento v²b∞r. Na obrßzku 7 jsem nejd°φve oznaΦil poslednφch p∞t °ßdk∙ a spustil jako filter p°φkaz sort. Fantazii se meze nekladou, po p°eΦtenφ uzlu Textutils v prohlφ╛eΦi info Vßs urΦit∞ napadne lep╣φ pou╛itφ.

Obrßzek 7 - pou╛itφ filtru na v²b∞r (klikni pro v∞t╣φ obrßzek)


Druhß Φßst menu obsahuje n∞kolik p°edvolen²ch p°φkaz∙ jako spell, wc (word count), sort a number lines. Pro neznalΘ angliΦtiny tyto p°φkazy kontrolujφ pravopis, seΦtou poΦet slov v dokumentu, set°φdφ °ßdky a oΦφslujφ °ßdky. P°φkazem Preferences / Default Settings / Customize Menus / Shell Menu... je mo╛nΘ tyto p°φkazy upravit, Φi p°idat p°φkazy novΘ. P°i p°idßvßnφ novΘ polo╛ky je t°eba zadat jejφ nßzev v menu, p°φpadnou klßvesovou zkratku, jestli jako vstup bude pou╛it v²b∞r Φi cel² soubor a co se mß stßt s v²stupem. Ten m∙╛e jφt do stejnΘho okna, novΘho okna Φi do dialogovΘho okna. Pak je tu je╣t∞ n∞kolik p°epφnaΦ∙ jako Output replace input nebo Save file before executing command. Poslednφm ·dajem je vlastnφ p°φkaz, kter² se mß vykonat.

Jako p°φklad mohu uvΘst t°eba zp∙sob, jak konvertovat z Neditu dokumenty mezi znakov²mi sadami linuxu a windows.
Menu entry: From windows
Command input: none
Command output: new window
Save file before executing command: zvoleno
Shell command to execute: cstocs 1250 il2 %


Obrßzek 8 - menu MacroMenu Macro se dß op∞t rozd∞lit na dv∞ Φßsti. V prvnφ jsou p°φkazy pro automatizaci opakujφcφ se Φinnosti. Prvnφ polo╛kou je Learn Keystrokes. Po jeho zvolenφ si Nedit bude zaznamenßvat v╣echny ·dery do klßvesnice. My╣ je v tΘ dob∞ nefunkΦnφ pro editaci. Sekvenci p°φkaz∙ ukonΦφte polo╛kou Finish Learn. P°eru╣it toto uΦenφ je mo╛nΘ p°φkazem Cancel Learn. A╛ budete chtφt tuto sekvenci zopakovat, zvolφte Repeat... nebo klßvesovou zkratku. Pokud je soubor n∞jak strukturovan² a Vy na n∞m provßdφte monot≤nnφ ·pravy, pak nenφ nic p°φjemn∞j╣φho ne╛ pou╛φt tuto funkci. Tφmto zp∙sobem jsem p°evedl soubor intel.doc do html formßtu na strßnce 80x86 instruction set.

Jinou mo╛nostφ je nadefinovat si vlastnφ makro v menu Preferences / Default Settings / Customize Menus / Macro Menu.... Op∞t zadßte nßzev makra (znak > vytvo°φ podmenu), p°φpadnou klßvesouvou zkratku a zda toto makro vy╛aduje v²b∞r. A pak jen pφ╣ete p°φkazy makra. Vlastnφ jazyk je velice jednoduch², spφ╣e bych °ekl trivißlnφ. Kdo pochopφ, ╛e p°φkaz x = 3 + 4 p°i°adφ prom∞nnΘ x hodnotu 7, ten tento jazyk u╛ umφ.

K dispozici mßte velk² poΦet p°eddefinovan²ch prom∞nn²ch jako jsou $cursor, $file_name, $selection_start, $selection_end nebo $text_length. Pak jsou zde funkce append_file, dialog, get_character, get_selection, replace_in_string, search, set_cursor_pos a dal╣φ. Pak jsou zde k dispozici v╣echny vnit°nφ funkce Neditu. Namßtkou new, print, fill_paragraph, beginning_of_line, copy_clipboard, delete_next_word, scroll_up a mnoho dal╣φch. V menu Help jsou v╣echny popsßny.

Samoz°ejm∞ bude nßsledovat mal² p°φklad. Nap°φklad makro, kterΘ spustφ dialog, do n∞ho╛ zadßte °et∞zec. Tento °et∞zec pak bude p°idßn na zaΦßtek ka╛dΘho °ßdku ve v²b∞ru. Nßzev dßme nap°φklad Tools>At start a za╣krtneme polφΦko Require selection. Pak zadßme vlastnφ p°φkazy makra:

slideInString = string_dialog ("Slide-in string:", "OK", "Dismiss")
if ($string_dialog_button == 1)
{
replace_in_selection ("(^.*$)", slideInString "&", "regex")
}

P°edposlednφ menu se naz²vß Windows. V prvnφ Φßsti obsahuje funkce Split Window a Close Pane, v druhΘ seznam otev°en²ch oken. Prvnφ funkce rozd∞lφ okno nebo jeho ji╛ rozd∞lenou Φßst na dv∞ p∙lky. V obou p∙lkßch editujete stejn² soubor. Rozdφlnß je jenom zobrazenß Φßst. Funkce Close Pane zase slouΦφ dv∞ Φßsti dohromady. Kdy pou╛φt tyto funkce? Kdy╛ editujete soubor na dvou r∙zn²ch mφstech a u╛ Vßs nebavφ neustßle scrollovat mezi nimi.

Poslednφ menu je Help. Obsahuje vyΦerpßvajφcφ informace o tomto skv∞lΘm editoru.

A je╣t∞ jeden trik na zßv∞r: oznaΦte my╣φ blok textu a klikn∞te na tento blok prost°ednφm tlaΦφtkem my╣i. TlaΦφtko dr╛te a my╣φ pohybujte. Cel² blok se bude pohybovat ve sm∞ru my╣i.

Leo╣ Literßk
Linux Hardware
x86 instructions set

Autor: Leo╣ Literßk (jinΘ Φlßnky tohoto autora)
Sekce: Software


Diskuse

27. 4. 1999 01:09:02 - S autorem clanku mohu jen vrel... (David Kalita)
S autorem clanku mohu jen vrele souhlasit ( i kdyz nejsem jeho pribuzny ani znamy ) a tento editor doporucit - je cool.

27. 4. 1999 10:10:05 - VI je nejlepsi!!! :-)... (Mikulas Patocka)
VI je nejlepsi!!! :-)

27. 4. 1999 10:13:10 - omlouvam se, ze jsem to sem po... (Mikulas Patocka)
omlouvam se, ze jsem to sem poslal vicekrat - blbla sit

27. 4. 1999 17:04:29 - Nevim, ale to co popisuje a... (Roman Porizka)
Nevim, ale to co popisuje autor v clanku mam v editoru vim taky a a ve vimu je toho mnohem, mnohem vic. Treba moznost slinkovani s athenou, motifem (lesstifem) a gtk. Posledne jmenovanou moznost vrele doporucuju. Nechci vim chvalit, teda chci, takze zacnu tim, co ho myslim odlisuje od ostatnich editoru. Kdyz mate otevrenej soubor, tak si udela jeste tzv. swap soubor, kam uklada zmeny, i kdyz svou praci na souboru neukladate. A pri pripadnem kixu si muzete praci snadno obnovit. No a tech moznosti je mnohem vic, jen namatkou moznost, ktera mi u ostatnich editoru docela chybi. Moznost nahrani sekvence prikazu a pak jejich moznost provedeni jejich X opakovani. tot vse, Roman P.


on-line novΘ okno dom∙ p°edchozφ Φlßnek nßsledujφcφ Φlßnek