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.
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.
Wygląd okna konfiguracji:
Wygląd funkcjonalności (Goto Anything i Command Palette):
Wygląd w trybie 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 Anything | Ctrl+G lub Ctrl+P | Pokaż 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 line | Ctrl+Shift+D | Powiela wybraną linię lub zaznaczony fragment tekstu |
Select similar | Ctrl+D | Zaznacza kolejne wystąpienie zaznaczonego tekstu, lub zaznacza wybrane słowo, jeśli znajduje się w nim kursor |
Swap lines | Ctrl+Shift+Strzałka Góra/Dół | Zamień miejscami 2 linie |
Expand selection | Ctrl+Shift+Spacja | Rozszerz zaznaczenie (wyraz –> wyrażenie –> linia –> tagi lub nawiasy –>itd) |
Add caret | Ctrl + LPM | Dodaj we wskazanym miejscu karetkę do pisania |
Add caret | Prawy Alt + Strzałka góra/dół | Dodaj karetkę do pisania linijkę wyżej lub linijkę niżej |
Comment line | Ctrl + / | Skomentuj lub odkomentuj wybrane linie |
Join lines | Ctrl + J | Złącza wybrane linie |
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 :)