Sublime Text 2

Dziś dość użyteczny wpis dla osób, które poszukują wydajnego, użytecznego i mocno funkcjonalnego edytora tekstu dedykowanego dla programistów. Postanowiłem zebrać w jednym miejscu moje doświadczenia z poniżej prezentowaną alternatywą dla takich programów jak Notepad++, Notepad2 a nawet Visual Studio oraz przedstawić jego możliwości. Bohater dnia dzisiejszego: Sublime Text 2. Poniżej zaprezentuję zalety i wady (tak, ma jedną xD) oraz odkryte przeze mnie możliwości.

Sublime Text 2 Screenshot

Zalety

  • niesamowicie funkcjonalny; ilość funkcji oraz skrótów klawiszowych potrafi nieźle zaskoczyć. Jest to pierwsze narzędzie poza Vimem oraz emacsem do prawdziwego procesowania tekstu na Windowsie
  • ma bardzo ładny wygląd (wiem, że to nie jest kluczowy aspekt, ale zdecydowanie milej korzysta się z oprogramowania, które zostało ładnie zaprojektowane, kolorystyka stonowana, itd :))
  • duży wybór motywów (które nawiasem mówiąc są bardzo dobrze zaprojektowane i nie ma sytuacji, gdy jeden z motywów źle funkcjonuje z jakimś językiem – co dość często spotykałem w Notepad++)
  • kolorowanie składni dla większości języków
  • makra
  • dostępny dla Windowsa, Linuxa i OSX
  • taby do edycji wielu plików naraz
  • minimapa kodu, na której widać zarys kodu w całym edytowanym pliku
  • sprawdzanie pisowni (jest, ale akurat to nie jest jakoś niesamowicie powalające; pod tym względem są lepsze)
  • Snippets dla większości języków
  • obsługa projektów (tzn. można otworzyć katalog z projektem, np. katalog z projektem w Visual Studio). Dzięki temu mamy załadowane wszystkie pliki z danego katalogu do sidebara i łatwo po nich nawigować; do tego uzupełniona jest obsługo GoTo Anything, o czym za chwilę
  • pluginy
  • system obsługi buildów (wbudowanych jest kilka, jest też możliwość dodawania własnych; pewnie dałoby się skonfigurować MSBuilda do tego celu)
  • multiselect i multiedit (w Notepad++ była co najwyżej tylko opcja do zaznaczania kawałka tekstu z Ctrl i taki blok można było edytować; tutaj jest to zdecydowanie bardziej rozszerzone)
  • uzupełnianie składni (działa na bardzo prostej zasadzie – weź wszystkie słowa w edytowanym dokumencie i użyj ich jako uzupełnienia listy podpowiedzi; proste a jakże użyteczne ;])

Wady

  • Płatny i dość drogi. Licencja kosztuje $59, ale biorąc pod uwagę możliwości – aplikacja jest w pełni warta tej ceny. Póki co Sublime Text 2 jest w fazie beta i można względnie bezstresowo testować nowe wydania aplikacji. Jedyne co może uprzykrzać nam życie to raz na jakieś 20 zapisów pojawi się nam okno z prośbą o zarejestrowanie / zakup programu
  • Brak czegoś takiego jak Ustawienia, które znamy z innych programów. Chcąc zmienić jakąś opcję w programie, wybieramy Preferences, otwiera się nam plik konfiguracyjny, który przypomina JSON. Dokonujemy zmian i zapisujemy… I to wszystko ;] To może być wada dla ludzi nastawionych dość mocno w kierunku okienek, ale mi osobiście w najmniejszym stopniu to nie przeszkadza :)

Wygląd

Kilka screenów prezentujących wygląd aplikacji w różnych motywach.

Sublime Text 2 Sublime Text 2 Sublime Text 2

Wygląd okna konfiguracji:

Sublime Text 2

Wygląd funkcjonalności (Goto Anything i Command Palette):

Sublime Text 2 Command Palette

Wygląd w trybie Distraction Free Mode:

Sublime Text Distraction Free Mode

Tabelka możliwości

Tutaj przedstawię opis, skrót klawiszowy i inne powiązane informacje o najciekawszych funkcjonalnościach jakie udało mi się znaleźć w Sublime Text 2.

Goto AnythingCtrl+G lub Ctrl+PPokaż okienko wyszukiwania nazwy pliku we wszystkich otwartych folderach i plikach.
# – wyszukuje tekst w otwartym pliku
: – przechodzi do linii o numerze…
@ – wyszukuje symbol (nazwa klasy, funkcji, zmiennej)
Można łączyć w ten sposób: abo@mv – wyszuka np. funkcję make_version w pliku about.py
Duplicate lineCtrl+Shift+DPowiela wybraną linię lub zaznaczony fragment tekstu
Select similarCtrl+DZaznacza kolejne wystąpienie zaznaczonego tekstu, lub zaznacza wybrane słowo, jeśli znajduje się w nim kursor
Swap linesCtrl+Shift+Strzałka Góra/DółZamień miejscami 2 linie
Expand selectionCtrl+Shift+SpacjaRozszerz zaznaczenie (wyraz –> wyrażenie –> linia –> tagi lub nawiasy –>itd)
Add caretCtrl + LPMDodaj we wskazanym miejscu karetkę do pisania
Add caretPrawy Alt + Strzałka góra/dółDodaj karetkę do pisania linijkę wyżej lub linijkę niżej
Comment lineCtrl + /Skomentuj lub odkomentuj wybrane linie
Join linesCtrl + JZłącza wybrane linie
Zostaje jeszcze Command Palette, który można aktywować skrótem Ctrl+Shift+P. Pojawi się nam wtedy pasek do wpisywania z wylistowanymi komendami, które można bezpośrednio uruchomić z tejże listy. Szczególnie użyteczne może być wstawienie Lorem Ipsum (4 klawisze i gotowe). Ponadto, instalacja pluginów rozszerza tę listę właśnie o nowe pozycje.

Przy okazji warto wspomnieć o nowym pluginie, który instaluje się od niedawna standardowo z aplikacją, ale jest domyślnie wyłączony. Mowa o Vintage. Jest to plugin przeznaczony dla prawdziwych programistów i maniaków Linuxa (nie to co ja) i jego funkcjonalność sprowadza się do podmiany wszystkich skrótów klawiszowych i całej funkcjonalności programu tak by była mocno zbliżona do popularnego na Linuxie VI.

Pluginy

Teraz czas napisać kilka słów o pluginach do Sublime Text 2. Wybór pluginów jak na razie jest, powiedziałbym, średni, co wynika bezpośrednio z tego, że edytor jest dopiero w wersji beta, ale już na obecną chwilę jest kilka pozycji, którymi warto się zainteresować.

Zanim jednak zaczniemy, wspomnę o pewnym feature, który ułatwi pracę z wtyczkami. Generalnie by zainstalować plugina, trzeba go najpierw znaleźć na forum Sublime, ściągnąć i rozpakować do odpowiedniego katalogu. Bajer, który pokażę zrobi zintegrowanego Menadżera Pluginów.

Otwieramy konsolę (Ctrl + `), kopiujemy tekst z poniżej i naciskamy Enter:

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())  

Uruchamiamy ponownie edytor i w menu Preferences widzimy nową opcję Package Control. Po kliknięciu w nią pojawi się nam lista akcji, które możemy wykonać; wybieramy Install Package i przeglądamy sobie listę dostępnych pluginów z krótkim opisem. Instalacja z tego miejsca jest natychmiastowa.

Wtyczki warte polecenia na ten moment to:

SublimeTagMatcher – przydatne do edycji HTML lub XML. Podświetla wyraźnie tagi otwierające i zamykające.

WordHighlight – po zaznaczeniu wyrazu, wszystkie takie same wyrazy w dokumencie są lekko podświetlone (i tak wyraźniej niż w Visual Studio 2010)

AAAPackageDev – paczka do tworzenia snippetów, obsługi nowych języków, etc. Zawiera także kilka przykładowych akcji, które są dodane do Command Palette.

Krótkie podsumowanie

Omawiany w dzisiejszym wpisie edytor wyrósł na znamienitego zamiennika dla bardzo dobrego Notepad++ i naprawdę warto go wypróbować, co z całego serca polecam :)

Dodam, że w moim przypadku, mimo iż jestem programistą ASP.NET i powinienem z definicji siedzieć tylko w Visual Studio, to Sublime Text 2 wykorzystuję bardzo intensywnie podczas pracy. Idealnie edytuje się nim style CSS, pliki JavaScriptu, kod ASPX, a w niektórych przypadkach nawet sam kod w C# (tutaj akurat gdy trzeba coś szybko zrobić albo nieźle przeprocesować kod źródłowy; w takich zastosowaniach Visual Studio jest… nazwijmy to żałośnie beznadziejne ;]). Oczywiście – Sublime Text nie podkreśli błędów składniowych i nie podpowie składni w taki sposób jak IntelliSense. Do tego zostaje VS. Ale wszędzie gdzie się da warto wykorzystywać odpowiednio lepsze narzędzia :)

Referencje

Sublime Text 2 Tips & Tricks || NetTuts

Sublime Text 2