Hlavní navigace

jEdit - tak trochu jiný editor

Lukáš Zapletal

Textový editor jEdit by se dal přirovnat k editoru Emacs. Je poměrně obsáhlý, má vlastní makrojazyk (BeanShell), je snadno rozšiřitelný, podporuje zvýrazňování syntaxe a zarovnávání. jEdit se tedy zařazuje na pole programátorských utilit. Je napsán v Javě a v následujícím článku se mu podíváme na zoubek.

Instalace a první spuštění

V současnosti je k dispozici verze 4.1, která je poměrně čerstvá. Instalace probíhá triviálně, protože se produkt dodává formou jednoho JAR archivu. Stačí tedy spustit příkaz java -jar jedit.xxx.jar a na obrazovce se již objeví grafický průvodce, který provede instalaci. Po zadání parametru text můžete také spustit instalaci textovou. Alternativně můžete stáhnout a nainstalovat RPM balíček ze stránek www.jpackage.org.

Tabulka č. 391

Hned při prvním spuštění vás jistě nadchne příjemný vzhled a přehledně uspořádané menu. Brzy přijdete na to, že funguje třeba kolečko myši, a na jiné drobnosti, které zpříjemňují život. Dialog pro otevírání souboru má mnoho vylepšení, jako jsou oblíbené položky či přímé volání některých pluginů. jEdit samo sebou načítá textové soubory, a to ve všech formátech včetně UTF8. Nedělají mu problémy ani soubory s řádkováním DOS nebo MAC a s přehledem otevře také soubory sbalené GZIPem.

Editace textu

Namapování kláves, které je velmi podobné Emacsu, mi ze začátku dělalo problémy, protože používám textový editor VIM. V prvním kroku jsem si tedy nastavil mapování alespoň zhruba na VI. Překvapilo mě, že jsem nenašel již připravený vzor, který by se dal načíst, a musel jsem klávesy vkládat ručně, ale dá se to zvládnout během pěti minut.

jEdit pracuje podobně jako Emacs v jednotlivých režimech bufferu, přičemž po startu editor přejde do základního – textového. V tomto režimu neprobíhá žádné zvýrazňování textu a implicitně není nastaveno ani zalamování řádků (máte možnost nastavit vizuální /soft/ nebo „na tvrdo“ /hard/). K základním volbám bufferu patří právě zalamování, šířka zlomu (po nastavení se objeví svislá čára), velikost tabelátoru, zarovnávání textu a smršťování (folding).

K dispozici máte základní textové úkony, jako je formátování textu na šířku, posun začátku řádku, skok na číslo řádku, skok k závorce a podobně. V textu můžete zanechávat značky a později se k nim vracet. Vyhledávání je nesmírně propracované, máte samozřejmě možnost použít také regulárních výrazů. Zajímavá je funkce hypersearch nebo funkce hledání ve více souborech. Za zmínku stojí to, že jEdit velice přehledně páruje závorky a zejména na více řádcích (na okraji se označí daný blok kódu).

Mezi základní vlastnosti dobrého editoru patří bezesporu doplňování slov. Základní mapování je CTRL+B, což si můžete samo sebou změnit. Je vyvedeno hezky. Po stisku kýžené kombinace editor nabídne seznam slov, ze kterých si můžete vybrat, nebo případně stiskem dalšího písmenka skočit na další. Rozšířené doplňování pak mají na starost pluginy.

Tabulka č. 392

Folding (smršťování textu) je vlastnost, která je v jEditu implementována v plném rozsahu. Máte ne výběr ze tří možností – Folding nevyužívat, podle počátku řádku, nebo explicitní folding. Asi nejužitečnější volbou je folding podle zarovnání řádku (indent), kdy máte možnost sbalit text, který je na stejné úrovni (například blok kódu v programovacím jazyce). Pokud si nadefinujete v textu vlastní úseky, které mohou být sbaleny, můžete použít explicitní smršťování.

Pohled na dokument můžete samozřejmě ovlivňovat. Rozdělování oken horizontálně a vertikálně funguje bezproblémově a takový synchronizovaný posun oken je velice užitečný. Poslední zajímavostí je BeanShell. Jedná se o interpretovaný makrojazyk se syntaxí Javy, ve kterém můžete psát makra. BeanShell je napojen přímo do jEdit API, můžete tak ovlivňovat prakticky cokoliv (vytvářet formuláře, otevírat okna, měnit text…). Naštěstí však samotný editor již v BeanShellu napsán není (jako např. Emacs).

Nastavení

Možnosti nastavení jsou opravdu široké. Vše se děje interaktivně, takže nebudete muset studovat konfigurační soubory. Kromě nastavení základních voleb (barvy, vzhled, načítání souborů, klávesová mapa, menu, toolbar atd.) můžete nastavovat vlastnosti editace pro každý buffer zvlášť (šířka textu, zalamování atd.), automatické doplňování zkratek (třeba if se rozvine na if (...) then) nebo si můžete nastavit dokování oken (docking), a to dokonce pro každý plugin jinak!

Tabulka č. 393

Příjemné je to, že po instalaci pluginu (možno instalovat automaticky přímo z jEditu nebo prostým nakopírováním jednoho či více souborů do adresáře JEDIT_HOME/jars) se přímo ve volbách objeví nová položka a vy si můžete plugin nastavit tak, jako byste nastavovali editor samotný. Většina pluginů má také nápovědu, která se automaticky přidá k originální nápovědě jEditu.

jEdit také nabízí jednu zajímavou vlastnost. Lze jej spustit v takzvaném server režimu (na pozadí), kdy se celý editor načte do paměti, ale nezobrazí. Při dalším startu již jEdit-klient komunikuje se serverem pomocí TCP/IP. Pokud toto načtení editoru provedete ihned po přihlášení, můžete takto zmírnit poněkud pomalejší startování (na průměrném stroji se jedná o 5–7 vteřin).

Přídavné moduly (pluginy)

Největší síla jEditu se skrývá v pluginech. Jsou to knihovny JAR, které se nakopírují do adresáře s programem a jEdit je automaticky po načtení aktivuje. Pluginů se na internetu vyskytují stovky a na domovské stránce programu naleznete jejich archiv. Rád bych v krátkosti představil ty nejužitečnější z nich.

Tabulka č. 394

Console

je plugin, který musíte mít. Poskytuje totiž jednak základní konzoli, kterou můžete spouštět programy v systému, jednak ho přímo vyžadují i jiné pluginy, protože jeho služeb využívají. Podobně je na tom plugin ErrorList, který implementuje okno, do něhož většina pluginů vypisuje chybové zprávy. Navíc umí chyby zvýraznit přímo v okně editoru a při najetí kurzoru chybu vypíše jako bublinovou nápovědu. Nejrozumnější je tyto pluginy ihned po instalaci ukotvit ke spodnímu okraji programu (options – docking – bottom).

Pokud chcete vyvíjet Java programy, asi se vám bude hodit JCompiler a JTools. JCompiler umí spouštět kompilátor a zobrazovat chyby (v ErrorListu) a JTools umí optimalizovat importy, obsahuje průvodce nové třídy a nabízí makra pro zakomentování/od­komentování bloků kódu. Jako zajímavý se jeví Java Insight plugin, který umožňuje prohledávat CLASSPATH a dekompilovat (pomocí JODE dekompilátoru) vybrané třídy. Plugin PMDje výtečným pomocníkem při odhalování překlepů a nedokonalostí kódu (viz. článek na rootu – Statická analýza kódu). Existuje dokonce i Debugger, ten je ale zatím ve fázi alfa testování. Další pluginy, které doporučuji alespoň vyzkoušet, jsou CVS, InfoViewer, JIndex, JBrowse, JDiff, Refactor, jUnit nebo RETester.

Tabulka č. 395

AntFarm

je povinný plugin, pokud jste si zvykli používat sestavovací program Ant (viz články o Antu). Umí volat jednotlivé cíle z ant skriptu, což si můžete namapovat na klávesovou zkratku. Děje se tak přímo jedním z vláken jEditu, a proto je startování Antu o mnoho rychlejší než z příkazové řádky, kde se Ant musí chvíli načítat. Máte také možnosti spouštět cíle z více sestavovacích skriptů, nastavovat proměnné a podobně. Případné chyby se samozřejmě zobrazují v ErrorListu, včetně těch, které jsou přímo v sestavovacím XML souboru. Za prozkoumání také stojí plugin AntViz (zatím ve fázi alfa verze), který umožňuje ladit sestavovací XML skripty.

Pokud se věnujete tvorbě dynamických webů, jistě oceníte pluginy, jako jsou XML, SQL, JTidy či Tomcat. První z nich je ze všeho nejzajímavější. Umí totiž kontrolovat XML soubory podle DTD definic. XML plugin tak povyšuje jEdit na plnohodnotný XML editor zobrazující chyby v XML, který automaticky doplňuje parametry, umožňuje vizuálně editovat jakékoliv značky a automaticky stahuje příslušné DTD přímo z internetu. Pomocí SQL můžete spouštět skripty prakticky na jakékoliv databázi, měnit data či vytvářet tabulky. JTidy vám zase uklidí HTML kód a konečně plugin Tomcat umí spouštět nebo restartovat Tomcata stiskem jedné klávesy.

Závěr

jEdit je výkonný editor, který byste určitě měli vyzkoušet. Jeho hlavní výhody jsem shrnul v tomto článku, mezi jeho hlavní nevýhody bych řadil absenci textového režimu a pomalejší startování. První nevýhoda bude možná v budoucnu odstraněna a ta druhá se dá překousnout, vzhledem k tomu, co všechno jEdit nabízí. Prakticky není nic, co by jEdit neuměl, a pokud o něčem takovém víte, svěřte se komunitě. Řešení formou makra, souboru s definicí syntaxe nebo pluginu na sebe nenechá dlouho čekat.

Linky:
www.jedit.org
plugins.jedit.org

Našli jste v článku chybu?

15. 9. 2007 16:28

Ondra (neregistrovaný)
Skvělé parsery, které parsují skoro každou blbinu a lze je přetvořit, prostě přesně to, co hledáte, má HomeSite. Bohužel pro vás jen pod Windows a bohužel pro všechny už se nevyvíjí.

Jinak PHP a HTML ještě jo, ale CSS a JavaScript byste už měl vyndat do zvláštních souborů. Má to více výhod - např. cache atd.

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Měšec.cz: Komu musí od ledna zvýšit mzdu?

Komu musí od ledna zvýšit mzdu?

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Flix TV: dva set-top boxy za korunu

Flix TV: dva set-top boxy za korunu

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu