TextMate: editace hrou

Jakub Šťastný 6. 8. 2007

Jste spokojeni se svým editorem Vim či Emacs? Nehlodá ve vás občas červíček pochybností, že editor přece může být při srovnatelných schopnostech i jednodušší? Nebo pokud používáte některý z jednodušších editorů, nezdá se vám, že by editor mohl být i mocnější? Seznamte se s TextMate, skutečným editorem nové doby.

Oťukáváme TextMate

Ačkoliv v našich končinách je situace trochu jiná, celosvětově lze TextMate považovat za suverénně nejpoužívanější editor railsové komunity, a to i přesto, že existuje teprve od roku 2004. Tím bych se rád dopředu ohradil proti námitkám, že článek není o open source a že TextMate dokonce ani neběží na Linuxu, nýbrž na unixové platformě Mac OS X.

TextMate ovšem zdaleka není pouze railsový editor, naopak – podporuje řadu dalších jazyků, jako jsou například Python, TeX, LaTeX, LaTeX-Beamer, YAML, různé formáty pro blogování a mnohé další. Celkově je podporováno přes 50 různých jazyků.

textmate

Filosofie TextMate

V TextMate se snoubí applovská jednoduchost se silou Unixu. Touto odvážnou kombinací vzniká jednoduchý, ale přesto velmi mocný editor.

Zajímavé vlastnosti

Vazba na vnější prostředí

Skvělou vlastností tohoto editoru je dokonalá vazba na shell a vnější prostředí vůbec. Kterýkoliv programovací jazyk z něj lze pomocí ⌘-R spustit, přičemž ve výstupu je barevně odlišen STDOUT od STDERR, výjimky jsou taktéž graficky odlišeny. Klávesová zkratka ⌘-R ovšem nefunguje pouze na jazyky programovací – v případě značkovacích jazyků, jako je HTML, otevře soubor ve webovém prohlížeči nebo třeba v případě PDFTeXu zobrazí náhled výstupního PDF souboru.

tm_ruby

Ukázka běhu skriptíku v Ruby.

tm_compiling

Kompilace prezentace v LaTeX-Beamer…

tm_preview

… náhled prezentace.

Projekty

Protože většinu kódu, který programátor edituje, patří zpravidla některému z projektů, je užitečné, když textový editor IDE projekty podporuje. U IDE je to samozřejmostí, u textových editorů tomu tak zdaleka není. TextMate je naštěstí světlou výjimkou a možnost tvorby projektů nám nabízí – stačí složku či skupinu souborů přetáhnout na ikonku editoru, založit nový projekt přes ⌃⌘-N nebo příkazem mate [soubory], kde je možno na místo souborů dosadit libovolné textové soubory v počtu vyšším než jedna (jeden soubor se jednoduše pouze otevře, projekt se nezakládá) nebo jednu či více složek. V případě uvedení složky bude rekurzivně použit její obsah. Vytváření projektu ze složek má jednu nezanedbatelnou výhodu – projekt je pravidelně aktualizován podle změn na disku, a nikdy tak nebudete muset přidávat soubory do projektu ručně.

tm_project

To samozřejmě není vše, co TextMate může v této oblasti nabídnout. Je možné vyhledávat a nahrazovat výrazy v rámci celého projektu, filtrovat soubory, které v projektu nechceme, a vůbec disponuje celou řadou příjemných vlastností. Stačí trošku hledat.

Chytré vyhledávání

Vyhledávání mezi konkrétními, předem známými položkami je v TextMate dovedeno k dokonalosti. Zatímco běžný editor by doplňoval pouze při shodě počátku názvu, zde stačí napsat libovolné znaky v názvu obsažené. Tento způsob doplňování oceníte zejména, pokud máte soubory určitého typu s nějakým prefixem, který byste jinak museli vždycky psát, nicméně užitečnost této vlastnosti není zanedbatelná ani v prostém doplňování souborů třeba v railsové aplikaci.

tm_search

Doplňování kódu

Velká výhoda TextMate je v tom, že za vás doplňuje obrovské množství kódu. Nejedná se ale o klasické code completion, nýbrž je zde namapováno velké množství různých zkratek pro různé úkony. if například expanduje na if – end, ife na if – else – end a podobně. Expandování zkratky se provádí tabulátorem, přičemž další výskyty tabulátoru nás automaticky přenesou na místo, kde je třeba něco doplnit. Tedy například v případě zkratky ife se nejdříve ocitneme na místě za if, kam napíšeme podmínku, stiskneme tabulátor a vyplníme, co se stane při splnění podmínky. Další stisknutí tabulátoru nás přesune do else větve.

Unikátní je zacházení s párovými znaky. Krom jejich dnes již téměř samozřejmého doplňování je možné třeba uzavřít text do závorek jednoduše tím způsobem, že jej označíme a posléze stiskneme otevírací závorku. Stejně tak to funguje například s uvozovkami a dalšími znaky.

Další vlastnosti

Jako spousta dalších editorů TextMate podporuje také folding, čili zabalování a rozbalování různých úrovní kódu. TextMate podporuje různá barevná témátka, bookmarky, makra, syntax highlighting a další dnes již standardní vlastnosti pokročilejších editorů.

tm_folding_II

Rozbalený kód…

tm_folding

… a zabalený kód.

tm_dark

Jedno z mnoha barevných témat.

Bundle editor

Bundle editor je správním centrem editoru – lze zde editovat příkazy, makra, šablony a vůbec zde lze dělat spoustu užitečných věcí. Ačkoliv při práci s TextMate jej budete používat často, tento článek je pouze seznámení s tímto fenomenálním editorem, a není tedy na místě pouštět se do přílišných podrobností.

tm_bunde_editor

Bundle editor.

Budoucnost?

TextMate se budoucnosti bát rozhodně nemusí, což ostatně dokazuje zájem skvělého nakladatelství Pragmatic Programmers, které má na progresivní trendy opravdu dobrý čuch.

Líbí se vám TextMate a používáte Mac OS X? Pak určitě neváhejte. Při příjemné ceně 39 € za licenci dostanete editor, který si opravdu zamilujete. Pokud ale třeba stále váháte, doporučuji prohlédnout si ukázková videa z domovské stránky projektu, vypadají docela působivě. A pokud si chcete klávesové zkratky osvojit snáze, zkuste ozdobit svoji plochu wallpaperem s klávesovými zkratkami pro TextMate.

Odkazy

Anketa

Jste ochotni za dobrý software zaplatit?

Našli jste v článku chybu?
Vitalia.cz: Galerie: Strouhanka ze starých rohlíků? Kdepak

Galerie: Strouhanka ze starých rohlíků? Kdepak

Měšec.cz: Investiční pasti. Děláte to, co ostatní, ale proděláváte

Investiční pasti. Děláte to, co ostatní, ale proděláváte

Vitalia.cz: Očkování je nutné, říká homeopatka

Očkování je nutné, říká homeopatka

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Vitalia.cz: Vakcína Cervarix je oficiálně i pro chlapce

Vakcína Cervarix je oficiálně i pro chlapce

120na80.cz: Lepší poporodní sexuální život? Žádný problém

Lepší poporodní sexuální život? Žádný problém

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Měšec.cz: Na návštěvě na exekutorském úřadě

Na návštěvě na exekutorském úřadě

Lupa.cz: Měřičům síly hesla se nedá věřit. Víte proč?

Měřičům síly hesla se nedá věřit. Víte proč?

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?