Hlavní navigace

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

Adam Štrauch

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.

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?

17. 8. 2012 8:05

K> (neregistrovaný)

Jsem se z recenze nedozvedel - Je ten editor aspon modalni jako vim? mam pocit ze jsem z poloviny cetl recenzi na editor PyCharm, ktery ale taky neznam, coz mi nepomohlo k tomu pochopit, cim je vlastne Sublime Text 2 tak skvely.

17. 8. 2012 7:54

Díky tak autorovi za osvětu.
Je to perfektní věc. V COEXu jej používáme téměř všichni.

Moje pluginy jsou (píšu hlavně python, js, html):
  • Bracket Hightliter
  • Djaneiro
  • PackageControl
  • SublimeCodeInter
  • SublimeLinter
  • WordHightlight
Možná by se někomu mohlo hodit moje nastavení:
{
    "codeintel_disabled_languages":
    [
        "html"
    ],
    "codeintel_live": false,
    "codeintel_live_disabled_languages":
    [
        "html"
    ],
    "color_scheme": "Packages/Color Scheme - Defa…

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č?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

DigiZone.cz: Test Philips 24PFS5231 s Bluetooth repro

Test Philips 24PFS5231 s Bluetooth repro

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

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

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

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

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

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

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

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

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

Spor o mortadelu: podle Lidlu falšovaná nebyla

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

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

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

Jmenuje se Janina a žije bez cukru