Hlavní navigace

Atom: moderní textový editor

4. 12. 2014
Doba čtení: 11 minut

Sdílet

Textový editor je nejpoužívanějším nástrojem programátorů, administrátorů i autorů dokumentace. V něm uživatelé často tráví nejvíce pracovního času, takže není divu, že výběr vhodného textového editoru je velmi důležitý. I proto si dnes představíme jeden z nejnovějších textových editorů současnosti: Atom.

Obsah

1. Atom: moderní textový editor

2. Instalace

3. Spuštění Atomu, grafické uživatelské rozhraní

4. Základní možnosti nastavení

5. Zobrazení rastrových obrázků

6. Prohlížeč souborů využívajících Markdown (či AsciiDoc)

7. Rozdělení pohledu

8. Vyhledávání

9. Folding

10. Vývojové a ladicí prostředky

11. Další moduly editoru Atom

12. Odkazy na Internetu

1. Atom: moderní textový editor

Pokud by si někdo dal tu práci a vytvořil seznam obsahující kategorie uživatelských programů a počty aplikací spadajících do jednotlivých kategorií, s velkou pravděpodobností by se na předním místě objevila kategorie textových editorů, tj. softwarových nástrojů určených pro tvorbu a zpracování takzvaného čistého textu (plain text) popřípadě konfiguračních souborů, HTML/XHTML stránek či zdrojových kódů. Už v jednom z předchozích článků na podobné téma jsem napsal, že je dokonce možné s určitou nadsázkou prohlásit, že v současnosti by bylo jen velmi problematické nalézt nějaký osobní počítač, který by neměl ve svém operačním systému nainstalován alespoň jeden textový editor. Textové editory nalezneme jak na Linuxu či OS X (TextEdit, Sublime Text), tak i na systémech Microsoft Windows, ať již se jedná o (nechvalně) známý a velmi jednoduchý Notepad[1] či o textové editory s rozšířenou a vylepšenou funkcionalitou, jakými jsou například Ultra Edit[2], Zeus[3] či známý a oblíbený tuzemský editor PSPad[4].

Obrázek 1: Textový editor Atom s nainstalovaným a spuštěným modulem Minimap i s otevřenou kostrou tohoto článku.

Ve světě Linuxu se po dlouhou dobu drží na špičce oblíbenosti dvojice nesmiřitelných(?) konkurentů – textový editor VimEmacs. Poslední dobou se však začaly objevovat další zajímavé produkty, zejména již zmíněný Sublime Text či hned několik tzv.„distraction-free“ editorů, které se naopak snaží před uživatelem skrýt všechny rušivé prvky. Velmi zajímavou alternativou k duu Vim+Emacs se zdá být textový editor Atom, což mj. znamená, že i skalní příznivci zmíněných dvou produktů by měli zpozornět, minimálně proto, že je dobré poznat svého nepřítele :-). Atom je postavený na dnes velmi populárních technologiích, především na JavaScriptu a modulech/knihovnách napsaných pro JavaScript; navíc se systém instalace přídavných modulů inspiroval způsobem registrace pluginů pro webové prohlížeče (což se trošku podobá přístupu Eclipse či JEditu).

2. Instalace

Složitost instalace textového editoru Atom do konkrétního operačního systému je do značné míry závislá na tom, zda je možné pro instalaci použít již připravené instalační balíčky dostupné na stránce https://atom.io/ či zda je nutné tyto balíčky upravit, popř. si dokonce zkompilovat Atom přímo ze zdrojových kódů. Oficiálně existují (binární) balíčky s Atomem pro Fedoru 20 (i když se na stránkách píše o jakémsi RedHat Linuxu :-), Ubuntu, Microsoft Windows 7, Microsoft Windows 8 a taktéž (Mac) OS X verze 10.8, popř. novější verze. Ve skutečnosti je však paleta podporovaných systémů poněkud rozsáhlejší, protože dostupné balíčky ve formátu RPM a deb je možné použít i na dalších systémech. Konkrétně to například znamená, že nabízený RPM balíček jsem bez problémů odzkoušel na Fedoře 19 i na Fedoře 20 (vše na systémech s mikroprocesory s architekturou x86_64, nikoli ARM), a to jen s jedním menším (o to však zapeklitějším) problémem, který se ovšem týkal pouze jediného modulu (Ungit), který bude stručně zmíněn v předposlední kapitole.

Obrázek 2: Instalace textového editoru Atom do Fedory.

Alternativně je samozřejmě možné textový editor Atom zkompilovat přímo ze zdrojových kódů. Tato možnost je popsána v souboru https://github.com/atom/a­tom/blob/master/docs/build-instructions/linux.md. Pravděpodobně nejdůležitější informací v tomto souboru jsou linky na dokumenty popisující instalaci Node.js na různé systémy, protože zbytek instalace již probíhá zcela automaticky.

Obrázek 3: Po úspěšné instalaci se odkaz na editor Atom objeví v menu desktopového prostředí.

3. Spuštění Atomu, grafické uživatelské rozhraní

Po (doufejme že úspěšné) instalaci popř. překladu Atomu se tento editor spustí příkazem atom. Ve skutečnosti se tímto příkazem spouští shell skript, který na základě detekovaného operačního systému nastaví různé parametry, zjistí cesty a následně spustí příslušný binární soubor s nativním kódem. Adresář, ze kterého je Atom spuštěn, se stává výchozím místem pro mnoho dalších operací, takže zpočátku může být výhodné Atom spouštět přímo z adresáře obsahujícího projekt, obsah GIT repositáře atd.

Obrázek 4: Textový editor Atom po svém prvním spuštění.

Jednou z důležitých vlastností textového editoru Atom jsou poměrně široké možnosti konfigurace vzhledu okna či oken, v nichž se zobrazují jak editované soubory, tak i další informace: strom se jmény souborů a adresářů aktuálně otevřeného projektu, dialog pro vyhledání řetězců v souboru či projektu, podokno se zobrazením obsahu dokumentů napsaných v Markdownu či AsciiDocu atd. Na předchozím screenshotu je zobrazeno okno Atomu při jeho prvním spuštění s výchozím nastavením konfigurace a pouze se základními přídavnými moduly.

Obrázek 5: Zvýraznění syntaxe a zobrazení stromové struktury projektů.

Výchozí barevné schéma editoru Atom je založeno na použití tmavé barvy pozadí a světlé barvy textu i ovládacích prvků. Toto nastavení samozřejmě nemusí vyhovovat všem uživatelům a proto Atom obsahuje možnost změny (viz též navazující kapitolu, kde se o možnostech nastavení stručně zmíníme). Již ve standardní instalaci je k dispozici několik barevných schémat, které lze vybírat v konfiguračním dialogu. Další barevná schémata lze samozřejmě doinstalovat a je možné předpokládat, že ve chvíli, kdy se Atom ještě více rozšíří mezi vývojáře, budou k dispozici i mnohá další barevná schémata (viz příklad poměrně aktivní komunity vývojářů rozšiřujících možnosti textového editoru Vim).

Obrázek 6: Změna barevného schématu (barevného tématu).

4. Základní možnosti nastavení

Základní vlastností každého textového editoru, který se snaží oslovit širší vývojářskou komunitu, je jeho velká konfigurovatelnost. To se samozřejmě týká i textového editoru Atom, u něhož se přímo počítá s tím, že jádro tohoto editoru bude aktivně rozšiřováno a doplňováno s využitím dalších přídavných modulů, přičemž prakticky každý modul může uživatelům nabídnout své vlastní možnosti nastavení (minimálně možnost povolit či zakázat vybraný modul).

Obrázek 7: Panel se všemi možnostmi nastavení editoru Atom.

Některé konfigurační volby se naproti tomu týkají chování či vzhledu celého editoru. Prakticky všechny konfigurační volby jsou dostupné z GUI dialogu, jenž se vyvolává poněkud skrytou volbou Preferences, kterou naleznete v menu Edit (zde se zobrazí i příslušná klávesová zkratka: Ctrl+čárka). Tento dialog mimochodem není modální, což znamená, že změnu konfigurace je možné si ihned odzkoušet. Jak je patrné i ze screenshotu zobrazeného nad tímto odstavcem, obsahuje konfigurační dialog čtyři hlavní části – Settings, Keybindings, PackagesThemes.

Obrázek 8: Velmi důležité volby – klávesové zkratky.

Konfigurační volby dostupné z části Settings se většinou týkají globálního nastavení celého textového editoru, význam části Keybindings je pravděpodobně zřejmý (jen je dobré podotknout, že v závislosti na použitém operačním systému se význam některých klávesových zkratek mění), v části Packages je možné vyhledávat, instalovat, nastavovat a popř. i zakazovat dostupné rozšiřující moduly (zde je inspirace webovými prohlížeči více než zřejmá) a konečně v části nazvané Themes lze nastavit a/nebo nainstalovat nové barevné schéma. Zajímavé přitom je, že Atom odlišuje barevná schémata měnící vzhled jeho grafického uživatelského rozhraní od barevných schémat použitých pro zvýraznění syntaxe.

Obrázek 9: Každý modul lze povolit, zakázat a samozřejmě i nastavit.

Obrázek 10: Výběr barevného schématu (barevného tématu)

Obrázek 11: Nastavení vlastností modulu použitého pro zpracování zdrojových textů v programovacích jazycích C či C++.

Obrázek 12: Nastavení vlastností modulu použitého pro zobrazení rastrových obrázků.

5. Zobrazení rastrových obrázků

V textovém editoru Atom najdeme i mnoho vlastností, které od „obyčejného“ textového editoru sice uživatelé většinou neočekávají, ovšem v mnoha situacích se může jednat o velmi užitečná doplnění. Jednou z poměrně neočekávaných vlastností je schopnost Atomu zobrazit vybraný rastrový obrázek, což se může hodit například při práci na webovém projektu, kde se kromě skriptů a šablon HTML stránek samozřejmě používají i obrázky. Tento modul má však i další využití – lze ho použít pro vývoj či ladění scény pro slavný raytracer POV-Ray (či pro podobné nástroje). Postačuje jen rozdělit (split) okno editoru na dvě části, editovat popis scény v jedné části a nechat si zobrazit generovaný rastrový obrázek v části druhé, a to vše v jedné aplikaci a s jednotnými klávesovými zkratkami.

Obrázek 13: Screenshot zobrazený přímo v Atomu.

Obrázek 14: Takto je možné bez problémů „odladit“ scénu v POV-Rayi.

6. Prohlížeč souborů využívajících Markdown (či AsciiDoc)

Při tvorbě dokumentace či dokonce při psaní knihy může být ještě zajímavějším a současně i užitečnějším doplňkem prohlížeč souborů využívajících značkovací jazyk Markdown. Na patnáctém obrázku můžeme vidět textový editor Atom, v němž je editován soubor s koncovkou .md. Přídavný modul v tomto případě po každé změně dokumentu provede regeneraci pravé záložky, což je většinou mnohem rychlejší operace než spouštění externího konvertoru a prohlížeče. Podobným způsobem lze editovat a živě sledovat změny v dokumentech používajících jazyk AsciiDoc, v tomto případě je však zapotřebí nainstalovat příslušný rozšiřující modul (plugin). Práce s AsciiDocem je poté shodná s editací dokumentu používajícího Markdown (zmínka o tvorbě knihy v Markdown a/nebo AsciiDocu není přehnaná, protože některá pokrokovější nakladatelství se k tomuto kroku u některých knih odhodlala).

Obrázek 15: Velmi užitečný modul sloužící pro zobrazení náhledu na soubory typu Markdown.

Obrázek 16: Velmi užitečný modul sloužící pro zobrazení náhledu na soubory typu Markdown (odlišné barevné schéma).

7. Rozdělení pohledu

Textový editor Atom se snaží přizpůsobit potřebám uživatele, takže například umožňuje, aby se některé dokumenty zobrazovaly ve vlastních oknech (což je použitelné zejména při práci na dvou či třech monitorech) či aby se naopak další dokumenty mohly editovat v jednom okně s několika záložkami (taby). Kromě toho je možné jedno okno textového editoru Atom rozdělit na prakticky libovolný počet sloupců a tyto sloupce pak rozdělit na větší množství buněk. K tomuto účelu slouží operace typu split, konkrétně Split up, Split down, Split leftSplit right, které jsou dostupné z kontextového menu. Každá buňka navíc může obsahovat libovolný počet záložek, dokumenty (resp. jejich záložky) lze mezi buňkami přetahovat apod., takže možnosti manuální či automatické konfigurace jsou v tomto ohledu značné (navíc je sympatické, že se uživatelům nenutí řešení typu „taby jsou vhodné vždy a pro všechny, ááno“ nebo „MDI za všech okolností je to, co uživatelům vnutíme“).

Obrázek 17: Split view – rozdělení okna editoru na panely.

Obrázek 18: Zaplnění panelů soubory.

8. Vyhledávání

Jednou z nejpoužívanějších operací, kterými jsou vybaveny i ty nejprimitivnější textové editory typu Notepad :-), je operace používaná pro vyhledání řetězce či regulárního výrazu s případným nahrazením nalezené oblasti jiným obsahem. Editor Atom samozřejmě vyhledávání a nahrazování v editovaných dokumentech podporuje, a to poměrně sympatickým způsobem – namísto použití modálního dialogu se při vyhledávání otevře (nemodální) podokno, do něhož je možné zadat jak vyhledávaný text (výraz), tak popř. i text, který má vyhledanou část nahradit. Poněkud tajemně pojmenovaná tlačítka .*, Aa a " (pravý dolní roh) slouží pro zapnutí/vypnutí použití regulárních výrazů, zapnutí/vypnutí rozlišování malých a velkých písmen a povolení či naopak zákaz vyhledávání pouze v označené oblasti a nikoli v celém dokumentu.

Obrázek 19: Vyhledávání řetězce v otevřeném souboru.

Kromě toho lze v případě potřeby použít i další volbu – vyhledání/nahrazování textu v celém projektu, což je operace dostupná pod klávesovou zkratkou Ctrl+Shift+F. V tomto případě se výsledek vyhledávání zobrazí v samostatné záložce (opět nemodální), kde jsou nalezené texty zvýrazněny a navíc se jedná o aktivní odkazy – po výběru příslušného řádku se provede přeskok do příslušného souboru, a to přesně na řádek/sloupec, kde byl text nalezen.

Obrázek 20: Vyhledávání řetězce v pracovním (otevřeném) projektu.

9. Folding

Většina moderních (programátorských) textových editorů podporuje takzvaný folding, tj. automatické, poloautomatické či manuální skrytí částí textů, resp. většinou zdrojových kódů. Tuto funkcionalitu nalezneme samozřejmě i v editoru Atom, který již ve své standardní instalaci obsahuje moduly, které rozpoznají vnitřní bloky a těla funkcí například u zdrojových kódů naprogramovaných v jazycích C či C++. Folding je však, ostatně podobně jako i prakticky všechny další části Atomu, plně skriptovatelný, takže je možné nainstalovat si další moduly, které jeho možnosti rozšiřují.

Obrázek 21: Folding ve zdrojovém kódu.

10. Vývojové a ladicí prostředky

Atomu mají uživatelé, zejména vývojáři doplňkových zásuvných modulů, k dispozici i vývojové a ladicí prostředky, které se nápadně podobají prostředkům dostupným v některých webových prohlížečích (to samozřejmě není náhoda). Po zobrazení vývojářské konzole lze sledovat jak strukturu grafického uživatelského rozhraní Atomu, tak i zjišťovat, ve které části programového kódu pluginu či samotného Atomu došlo k chybě. Na možnosti, které nám tyto prostředky nabízí, se podrobně podíváme ve druhé části tohoto článku.

Obrázek 22: Vývojářská konzole v editoru Atom.

Obrázek 23: Vývojářská konzole v editoru Atom.

11. Další moduly editoru Atom

Největší zbraní textového editoru Atom je možnost rozšíření jeho funkcionality s využitím přídavných modulů (pluginů). Všechny pluginy jsou šířeny formou balíčku s jednotným formátem, přičemž pro tvorbu těchto balíčků existuje podpora přímo v Atomu. Navíc jsou všechny pluginy (alespoň prozatím) dostupné z jediného místa a nemusí se stahovat a instalovat ručně, neboť pro jejich instalaci a konfiguraci slouží globální konfigurační dialog, o němž jsme se již zmiňovali.

Obrázek 24: Přídavný modul Atom Ungit: zobrazení historie GIT repositáře.

ict ve školství 24

Ze zajímavých pluginů stojí za zmínku plugin pro emulaci Vimu (který podle mého názoru potřebuje doladit a zrychlit) a taktéž plugin nazvaný Atom Ungit. Na tomto pluginu je možné ukázat těsnou návaznost Atomu na webové technologie, neboť po instalaci Atom Ungitu se přímo v prostředí editoru může pracovat s GITovskými repositáři způsobem, který někteří čtenáři možná znají z používání originálního webového Ungitu. Podrobnosti o tomto pluginu i o dalších zajímavých přídavných modulech si řekneme příště.

Obrázek 25: Přídavný modul Atom Ungit: přímo v Ungitu se (v GUI) provedlo sloučení dvou větví.

12. Odkazy na Internetu

  1. Atom: domácí stránka
    https://atom.io/
  2. Atom: FAQ
    https://atom.io/faq
  3. Atom: Packages
    https://atom.io/packages
  4. Atom: verze v0.152.0
    https://github.com/atom/a­tom/releases/tag/v0.152.0
  5. Git repositář s editorem Atom
    https://github.com/atom/atom
  6. GitHub Atom: 5 Tips For Getting Started
    http://readwrite.com/2014/05/20/github-atom-5-tips-getting-started-tutorial-corey-johnson#!
  7. Atom (Text Editor)
    http://en.wikipedia.org/wi­ki/Atom_%28text_editor%29
  8. Atom, the Text Editor from GitHub, Goes Free and Open-Source
    http://lifehacker.com/atom-the-text-editor-from-github-goes-free-and-open-s-1573153208
  9. GitHub Open Sources Its Atom Text Editor
    http://techcrunch.com/2014/05/06/git­hub-open-sources-its-atom-text-editor/
  10. Five best test editors
    http://lifehacker.com/five-best-text-editors-1564907215
  11. Atom: free and open source for everyone
    https://github.com/blog/1831-atom-free-and-open-source-for-everyone

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.