jEdit – editor schopný nejen nahradit PSPad

11. února 2005

Chtěl bych vás seznámit s jedním z nejlepších programátorských editorů, který je multiplatformní, velice rychlý, podporuje pluginy, má kvalitní makro jazyk a vestavěnou podporu desítek různých programovacích jazyků. V tomto článku vám předkládám srovnání jEditu s PSPadem, de facto českým standardem pro freewarový XHTML/PHP editor, a přehled oblastí, ve kterých je jEdit oproti PSPadu lepší.

Program jEdit je programátorský editor napsaný v Javě a poskytovaný v GNU GPL licenci, takže funguje v postatě na libovolném OS, ať už je to Windows, Linux, MacOS X, OS/2, HP Unix, VMS či Solaris. Pro jeho spuštění potřebujete Java Runtime Edition (JRE), a to verze 1.4.0 a vyšší (1.5.0 je také testována). A přestože je to aplikace psaná v Javě, je mimořádně rychlá. Pro řadu operací je jEdit dokonce mnohem rychlejší než oblíbený PSPad.

Výhoda jEditu se projeví i pokud pracujete s více operačními systémy (v mém případě Windows XP, Fedora Core 3 a Solaris 9), budete mít totiž všude stejný, stejně konfigurovaný a stejně kvalitní programátorský editor.

Instalace jEdit

Protože je jEdit javovská aplikace, musíte si nejdříve stáhnout JVM, například balík JRE 1.5.0 od Sunu. Následně vám k instalaci doporučuji jEdit 4.2 stable. V době vzniku tohoto článku sice existuje i verze jEdit 4.3 pre1, nicméně, neriskoval bych, že v ní nastane chyba a přijdete tak potencionálně o kus práce. Je to teprve první preview verze, běžně jich bývá kolem deseti. Verzi 4.2 používám dlouhodobě a je mimořádně stabilní.

Po instalaci Javy a nakopírování jEditu do C:\Program Files\jEdit\ můžete na Windows spustit jEdit například takto:

„C:\Program Files\j2sdk\bin\javaw.exe“
   -Xms32m -mx64m
   -jar „C:\Program Files\jEdit\jedit.jar“
   -background

A na Linuxu například takto (cesty si samozřejmě upravte podle své instalace):

/usr/java/jre1.5.0/bin/java
   -Xms32m -mx64m
   -jar /home/rado/jedit/4.2/jedit.jar
   -background

Podstatné jsou zde přepínače -Xms32m a -mx64m, které umožní, aby JVM alokovalo více než standardních 8 MB paměti, a to konkrétně minimálních 32 MB paměti (kvůli rychlosti) a maximálních 64 MB paměti (osobně větší soubory needituji). Rovněž je použit přepínač -background, který zajišťuje, že i když jEdit ukončíte pomocí zavíracího křížku okna, proces JVM zůstává stále v paměti a při novém spuštění aplikace jEdit naběhne během několika milisekund, tedy okamžitě (dokonce ještě rychleji než nové spuštění PSPadu). Pokud chcete proces ukončit zcela, aby nealokoval paměť, stačí použít klávesovou zkratku Ctrl+Q či volbu v menu | File | Exit |.

Základní nastavení jEditu naleznete v menu | Utilities | Global Options |. Je potřeba zejména nastavit v sekci | Textarea | vhodné písmo, pro můj LCD monitor se na Windows nejlépe vyjímá Lucida Sans Typewriter 13 Plain, se zapnutým „Smooth Text“ a „Fractional Font Metrics“, a na Fedora Core 3 používám Nimbus Mono L 12 Plain.

Rychlý přehled funkcí jEditu

Pojďme se podívat na obrazovku jEditu na Windows, s několika otevřenými soubory a s uživatelsky uzpůsobenou konfigurací, obrázek řekne často více než mnoho slov:

jEdit - hlavní obrazovka
jEdit – hlavní obrazovka (plná velikost, cca 24 kB)

Na první pohled je vidět několik silných funkcí jEditu, které v řadě jiných editorů nenajdeme:

Complete Word
Doplňování slov aktuálně používaného programovacího jazyka, používá se klávesová zkratka Ctrl+B.
Folding
Funkce, která automaticky rozčleňuje text do celků a bloků a umožňuje pomocí šipek na levé liště jednotlivé bloky zabalit či rozbalit pro větší přehlednost (v tomto případě je zvolen „Folding Mode: Indent“).
PHP Parser
Umí při uložení či načtení souboru varovat, které části kódu obsahují chyby.
Rychlá práce s řadou kódování
jEdit podporuje cp1250, iso-8859-2, utf-8 a dalších zhruba padesát kódových stránek. Na rozdíl od PSPadu otevírání souborů probíhá extrémně rychle – zkuste si otevřít například zálohu SQL databáze o velikosti 20 MB pro editaci v UTF-8, zatímco PSPad na několik minut zkolabuje, jEdit soubor otevře a je s ním schopen pracovat během dvou sekund. (Toto není pomlouvání jinak skutečně skvělého PSPadu, jen je to podle mého prostě editor určený na jiné, menší věci.)
Podpora pluginů
Onen zmíněný PHP parser, či horní Buffer Switcher, je řešen jako plugin, což je skvělá koncepce. Dokonce i ukázkový vzhled jEditu je řešen pluginem, poznámkový blok je plugin, FTP klient je plugin a tak dále. Prostě jEdit můžete dle libosti rozšiřovat, pluginů existují stovky, osobně jich používám asi dvacet.
Structure Browser
Prohlížeč struktury dokumentu, u větších projektů nedocenitelná věc.
Syntax Highlighter
Standardní věc, nicméně v jEditu pracuje i s PHP parserem a je schopna chybně napsané věci dále zvýraznit, což úžasně pomáhá v práci.

Kromě těchto na první pohled viditelných funkcí obsahuje jEdit:

  • velice kvalitní makrojazyk
  • mimořádně rychlé prohledávání a nahrazování slov, včetně podpory pro hledání v otevřených souborech (bufferech), v adresáři (a podadresářích) a s podporou pro regulární výrazy, vše sdruženo v jednom přehledném a efektivním dialogovém okně
  • možnost automatického zálohování souborů do zvoleného adresáře
  • podporu pro centrální repository pluginů, tedy server jedit.org se seznamem všech pluginů dostupných přímo ze Správce pluginů v menu jEditu, a s možností jejich automatického stažení a instalace na jedno kliknutí, včetně řešení vzájemných závislostí mezi pluginy, a podporu pro automatický update na novější verze pluginů
  • podporu, pomocí pluginů, pro převod kódu do XHTML, podporu pro Tidy, Diff plugin a desítky dalších
  • podporu pro Abbreviations, tedy vestavěné i uživatelsky definované zkratky, které jsou při psaní automaticky nahrazovány celým textem
  • podporu pro Split View, tedy více pohledů na jeden buffer

Integrace jEditu s PHP

Na Windows je možné použít síly maker jEditu společně s rozšířenou nápovědou pro PHP („chm“ formát) pro kontextovou nápovědu. Když napíšete v textu třeba iconv, označíte toto slovo, stisknete vámi nadefinovanou horkou klávesu (třeba Ctrl+Alt+P) a spustíte tím makro, které otevře nápovědu PHP pro danou funkci.

Uvedené makro může vypadat například takto:

CHM_location = „C:\\Dev\\Manual\\PHP\\php_manual_en.chm“;
selections = textArea.getSelection();
if(selections.length > 0) CHM_location += „::/_function.html#“ + textArea.getSelectedText();
exec(„HH “ + CHM_location);

Jedná se o vcelku samovysvětlující věc, manuál k PHP mám v tomto případě umístěn v C:\Dev\Manual\PHP\php_manual_en.chm a příkaz spustí program HH (Nápověda Windows) s parametrem hledané funkce. Stáhnout si manuál v „chm“ formátu (jen pro Windows) můžete na php.net (má 10 MB a obsahuje i komentáře a řešení uživatelů, což je dost užitečné).

Pokud chcete raději používat online nápovědu, může vaše makro vypadat například takto (Ctrl+Alt+O):

exec(„c:\\program files\\mozilla firefox\\firefox.exe http://www.php.net/“ + textArea.getSelectedText() );

Tyto makra uložte jako Název_makra.bsh do ./jedit/macros/php/ a následně jim přiřaďte klávesové zkratky v | Utilities | Global Options | Shortcuts | Macros |.

Užitečné pluginy

Program jEdit ani ve standardní instalaci není „chudý“ editor, teprve s pluginy specializovanými na váš vybraný programovací jazyk však získává patřičně na síle.

V menu | Plugin | Plugin Manager | Install | vám jEdit nabídne veškeré pluginy existující v jEdit Plugin Repository, včetně jejich krátkého popisu (musíte být pochopitelně v tu chvíli připojeni k internetu). Instalace spočívá v kliknutí na checkbox u názvu pluginů, které chcete instalovat, a ve zmáčknutí tlačítka Install, případně dle požadavků doprovázeném restartováním jEditu.

Po instalaci je v | Plugin | Plugin Manager | Manage | k dispozici i podrobná nápověda ke všem instalovaným pluginům.

Vlastní „skladba“ pluginů se bude lišit podle vašich potřeb, pro své programování v PHP, Pythonu a SQL (na C++ jEdit nepoužívám) mám instalováno toto:

Plugin Popis
BufferTabs Tento plugin umí zobrazit „záložky“ (tabs) všech otevřených souborů (v jEditu se soubor nazývá buffer), jako je známe třeba z Firefoxu.
CharacterMap Mapa znaků.
Clipper Utilita, která zobrazí definované sady příkazů či znaků (třeba XHTML elementy).
CodeBrowser Skvělý plugin, který umí zobrazit relace mezi třídami v celém projektu, popřípadě v otevřených souborech.
Code2HTML Převede jakýkoli napsaný kód do naformátovaného XHTML se zvýrazněním syntaxe.
Console Spouštění externích příkazů.
EditorScheme Obsahuje asi 30 vestavěných barevných schémat (osobně používám schéma ColdFusion).
ErrorList Tento plugin je vyžadován ostatními pluginy pro zobrazení chybového výstupu, třeba PHP parseru.
FindFile Hledání souboru podle řady parametrů.
Gestures Možnost ovládat jEdit gesty myší.
jDiff plugin Porovnání dvou bufferů či souborů.
jTidy Implementace Tidy knihovny pro XHTML.
Look and Feel Možnost modifikace vzhledu celého jEditu (používám vzhled jGoodiesPlasticXP).
ProjectViewer Správce projektů.
QuickNotepad Luxusní poznámkový blok.
SQL Umožňuje u projektu nadefinovat připojení k databázi a vykonávat nad ní SQL příkazy, neuvěřitelně užitečné!
SideKick Umožňuje procházet strukturu právě otevřeného bufferu.
TextTools Rozšířené nástroje pro práci s textem.
WhiteSpace Totálně konfigurovatelné zobrazení bílých znaků.
XML XML parser.
XML indenter -formátování XML kódu.
XQuery Zpracování XSLT dotazů.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *