Sublime Text 2: pokročilý editor vycházející z Vimu

Adam Štrauch 17. 8. 2012

Když byla vyvíjena hra Catacomb Snatch v rámci Humble Bundle Mojam, byl k tomu použit textový editor Sublime Text 2. Vývojáři rozhodně věděli, proč si tento editor vybrat, a pokud ho vyzkoušíte, zjistíte že dokáže ledasco usnadnit. V tomto článku se ho pokusím představit a vyzdvihnout hlavní vlastnosti.

S textovými editory to je jako s noži. Jiný používáme na rybu, jiný na chleba a úplně jiným mažeme na housku máslo. Stejně jako se špatně zastupují navzájem různé druhy nožů, i textové editory jsou specializované na určitou oblast. V Eclipse jde třeba dobře programovat v Javě, ale už se s ním špatně konfiguruje server. Vim je zase dobrý na konfigurační soubory, ale na rozsáhlé projekty je potřeba si pomáhat různými pluginy, které nedokáží plnohodnotně nahradit specializované IDE. Své místo mají i jednoduché editory jako třeba Kate. Nedokázal bych si představit psát v Kate aplikaci pro Android, ale na články pro Roota, včetně tohoto, je více než dobrý.

V rámci projektu Humble Indie Bundle, konkrétně Humble Bundle Mojam, bylo možné sledovat vývojáře firmy Mojang, jak pracují na hře Catacomb Snatch. Ta vznikla za 60 hodin a při jejím vývoji byl použit editor Sublime Text 2. Z kanceláří firmy Mojang byl na internetu během vývoje stream a jedním z častých témat při jeho komentování byl právě tento editor.

Sublime Text 2 napsal Jon Skinner a o postupu ve vývoji se dělí se svými uživateli na blogu www.sublimetext.com/blog/. Jde o komerční editor napsaný v C++, jehož licence stojí v přepočtu kolem 1200 Kč. Editor si můžete jen vyzkoušet s tím, že bez zakoupené licence na vás občas při ukládání vyběhne dialog s informacemi o koupi. Pokud chcete vědět o Sublime Text 2 více, určitě si přečtěte Jonův blogpost s názvem Anatomy of a Next Generation Text Editor. V něm je popsáno, jak Sublime Text vznikl a co autora vedlo k tomu, že dnes editor vypadá, jak vypadá.

Jon Skinner byl a možná ještě je uživatelem Vimu a k němu zároveň používal Visual Studio. Vývoj uživatelského prostředí šel směrem k oknům a myši a i když je Vim mocný nástroj, v porovnání s dobře udělaným okenním editorem se může jevit trochu neohrabaně. Jon si to uvědomil a tak zkusil vzít jednoduchost Vimu a některé prvky z Visual Studia a spojil je dohromady. Snahou tedy bylo udělat Sublime Text 2 intuitivní, jednoduchý a zbytečně neobtěžující uživatele. Například se vám při vyhledávání nestane, že vyběhne dialog, který zakryje text, ale objeví se jen malý panel na spodní hraně okna. Textu je vůbec věnována velká pozornost. V souborech je možné se orientovat pomocí minimapy a editor se snaží maximálně využít každý dostupný pixel. To znamená že je možné editovat více souborů najednou v rozděleném okně, editor nemá zbytečné panely a navíc je možné ho přepnout do fullscreen režimu.

Pokud rádi píšete a víc než hledání zdrojů se potřebujete soustředit na práci, tak kromě fullscreen módu má Sublime Text 2 distraction free mode, ve kterém zmizí vše kromě horního menubaru a textu samotného. Navíc se text více vystředí a zmizí čísla řádků. Editor neobsahuje snad žádný konfigurační editor, ale vše se nastavuje v dobře okomentovaných konfiguračních souborech formátu JSON. Stejným způsobem se konfigurují klávesové zkratky.

Porovnání s PyCharm

Používám pro vývoj hlavně Python, a tak je můj pohled deformován hlavně tímto jazykem. Nejlepší IDE, se kterým jsem se kdy pro Python setkal, je PyCharm, produkt české firmy JetBrains. Jde také o komerční produkt s komplikovanějším licencováním, který je na rozdíl od Sublime Text 2 napsán v Javě. PyCharm umí s pythoním kódem velmi dobře pracovat, není problém v něm změnit jméno funkce, třídy nebo proměnné a vědět, že bude vše fungovat. Sám umí importovat použité funkce či třídy, a když nevíte, jak se něco přesně jmenuje, pomůže i s inteligentním vyhledáváním mezi dostupnými pythoními moduly. Díky PyCharmu jsem dělal méně chyb a nemusel kód ladit tak dlouho. Umí mnoho věcí, na které je v Sublime Text 2 potřeba plugin.

Na druhou stranu jsem s ním měl od začátku problémy hlavně kvůli rychlosti. Začít pracovat znamenalo PyCharm spustit a jít si udělat kafe. V některých případech bylo potřeba přeindexovat dostupné pythoní moduly, což byl další čas navíc. I když tato akce probíhá na pozadí, editor je neskutečně pomalý i při pohybu kurzorem. Změna přišla s pořízením nového stroje s SSD diskem, ale i tak jsem občas odkázán na stařičké Eee nebo desktop bez SSD disku. V tomto ohledu nemá Sublime Text 2 problém. Je stejně rychlý jak na novém desktopu, tak na starém Eee s pomalým Atomem.

Nabídla se tedy myšlenka, zda Sublime Text 2 zvládne nahradit funkce PyCharmu, které používám. Naštěstí má Sublime Text rozhraní pro pythoní pluginy, takže ledasco do něj lze dopsat. K tomu se mi podařilo z repositáře nainstalovat pár balíčků, které pomáhají s HTML, kontrolují syntaxi pythoního kódu, integrují GIT nebo přidávání syntaxi Django šablon. Nakonec se mi podařilo dát dohromady většinu funkcí, co jsem v PyCharmu využíval.

PyCharm je klasický korporátní software. Každá funkce má své zastoupení v uživatelském rozhraní, takže uživatel má ze začátku pocit, že místo psaní kódu právě řídí raketoplán. Ve stejném duchu se nese i konfigurační dialog, který má nekonečně množství voleb. Minimální rozlišení v požadavcích (1024×768) pak dává tušit, že na malých displejích to s PyCharmem sranda nebude. S odpovídajícím hardwarem ani jedna ze zmíněných vlastnostech překážkou při používání není.

PyCharm není úplně porovnatelný se Sublime Text 2, protože je to úzce specializované IDE pro konkrétní jazyk, zatímco Sublime Text je univerzální editor pro cokoli. I tak si ale tuto část článku neodpustím, protože se mi potřebné vlastnosti PyCharmu podařilo do Sublime Text 2 dostat a výsledek není vůbec špatný. Mnohem blíže k němu má TextMate, který byl nedávno uvolněn pod GPLv3. Bohužel to není editor dostupný pod Linuxem, takže mi jeho krása zůstala schována. Proto budu rád, pokud se najde v diskusi někdo, kdo by mohl Sublime Text 2 s TextMate či jinými editory porovnat.

Základní klávesové zkratky a ovládání

Na rozdíl od Vimu zvládne Sublime Text 2 používat i začátečník hned po prvním spuštění. Editor se chová podobně jako jiné klikací editory. Může se ovládat myší, ale když si o něm něco přečtete, zvládnete to s větší efektivitou i z klávesnice. Sublime Text 2 má několik silných vlastností, bez kterých ho nelze používat naplno:

  • Editace na více místech
  • Pythoní pluginy
  • Příkazy
  • Rychlý skok na soubor/řádek

Základní vlastností Sublime Text 2 je možnost více kurzorů v textu, čehož využívá řada klávesových zkratek. Kurzory je možné „rozmnožit“ kliknutím myši za použití Ctrl. Od této chvíle se bude to, co napíšete objevovat na všech místech, která určíte. Stejné vlastnosti pak využívá klávesová zkratka Ctrl+D. Stačí označit nějaký text, stisknout Ctrl+D a postupně se začnou označovat stejné řetězce a na jejich místě se objeví nový kurzor. Třetí a ne poslední je zkratka Ctrl+Shift+L, která umístí kurzor za všechny označené řádky.

Napsat pro Sublime Text 2 plugin není složité a určitě se vám k tomu bude hodit dokumentace. Každopádně už je hromada pluginů hotova tak je možné, že si vystačíte s nimi. Práci s pluginy nemá Sublime Text 2 nějak ošetřenou, takže prvním krokem, který dokáže hodně věci usnadnit je instalace pluginu pro správu pluginů. Ten se jmenuje Package Control a nainstalujete ho v pythoní konzoli v editoru, která se objeví po zmáčknutí ctrl+`. Pokud máte s touto zkratkou problémy, tak je možné se do konzole dostat i přes menu View-Show Console. Do té pak zadejte:

import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()) 

Po instalaci můžete získat nové pluginy mnohem intuitivněji. Když zmáčknete ctrl+shift+P, objeví se seznam příkazů, ve kterých je možné vyhledávat. Začnete psát „Package“ a objeví se položka Package Control: Install package. Po vybrání se pak objeví další dialog s možností výběru konkrétního pluginu.

Pravděpodobně vám Sublime Text 2 nebude vyhovovat hned a budete potřebovat jeho chování trochu upravit. To se dělá v menu Preferences-Settings Default. Jak je zmíněno výše, objeví se dobře okomentovaný konfigurační soubor v JSON formátu, kde můžete potřebnou vlastnost upravit.

widgety

O tom, jak si Sublime Text 2 přizpůsobit, už bylo napsáno mnoho a jeden z těch povedenějších článků najdete třeba na nerdi.net.

Shrnutí

Sublime Text 2 je univerzální editor za slušnou cenu, který lze doplnit i o vlastnosti moderních IDE. Byl vyvinut zkušeným vývojářem pro vývojáře. Hlavními vlastnostmi jsou možnost pracovat s více kurzory, velké množství pluginů, jednoduchost a rychlost. Nevýhodou může být uzavřený kód a pro někoho i cena.

Našli jste v článku chybu?
Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

Lupa.cz: Odkazy na pirátský obsah mohou být nelegální

Odkazy na pirátský obsah mohou být nelegální

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Lupa.cz: Facebook dva roky falšoval čísla videí

Facebook dva roky falšoval čísla videí

Root.cz: Podívejte se na shořelé Samsung Note 7

Podívejte se na shořelé Samsung Note 7

DigiZone.cz: Budoucnost TV vysílání ve Visegrádu

Budoucnost TV vysílání ve Visegrádu

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Lupa.cz: Co všechno je Facebook schopný cenzurovat?

Co všechno je Facebook schopný cenzurovat?

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

Vitalia.cz: Tohle všechno se dá usušit

Tohle všechno se dá usušit

120na80.cz: Nejsilnější alergeny jsou pryč

Nejsilnější alergeny jsou pryč

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Vitalia.cz: Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vodárny varují: Ve vodě z kohoutku jsou bakterie

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

Vitalia.cz: Nová vakcína proti chřipce se aplikuje nosem

Nová vakcína proti chřipce se aplikuje nosem