środa, 14 sierpnia 2013

[K] Sublime Text

Dziś nie będzie wpisu o zdjęciach. Nic z tych rzeczy. Dzisiaj napiszę kilka słów o edytorze Sublime Text 2. Od razu ostrzegam, że wpis będzie dość mocno hermetyczny, ponieważ normalnemu użytkownikowi taki edytor nie jest potrzebny. Pożytek będą mieli z niego głównie programiści oraz (może przede wszystkim) webmasterzy. Nie będzie to też kompendium wiedzy na temat tego programu, bo sam używam go raptem kilka dni. Chciałbym tylko opisać, co takiego mnie urzekło na tyle, by prawdopodobnie porzucić Notepada2, Scintillę i Notepada++.

Program można pobrać ze strony http://www.sublimetext.com/2.

Po co komu mały edytor?

Każdy, kto napisał sporo kodu w takich językach programowania, jak PHP czy HTML/JavaScript wie, że systemowy Notatnik to za mało (jestem użytkownikiem systemu Windows, więc nie wnikam, jakie domyślne, małe edytory mają inne systemy). Brak kolorowania składni, sprawdzania poprawności, swobodnego zmieniania kodowania znaków czy podpowiadania składni sprawia, że praca z Notatnikiem jest żmudna i nieefektywna (wiem, że zaraz oburzą się "hardkorowi" programiści, którzy najchętniej korzystaliby z kart perforowanych, ale nie o nich przecież chodzi). Istnieje mnóstwo darmowych zamienników, często świetnych (czyli wspomniane Notepad2, Notepad++). Ba, sam kiedyś napisałem kED2, którego używałem do niedawna od czasu do czasu. Czy komercyjny Sublime Text ma jakiekolwiek szanse w starciu z bezpłatnymi edytorami?

Co ma, czego nie mają inni

Większość darmowych zamienników systemowego Notatnika ma kolorowanie składni, pracę z wieloma dokumentami (zakładki), dużo funkcji edycyjnych (wyrażenia regularne przy wyszukiwaniu/zastępowaniu, zmiana wielkości znaków, zmiana strony kodowej). Czasem spotkać można kontekstowe podpowiadanie składni. Sublime Text ma to wszystko, a ponadto sporo, sporo więcej.

Projekty

Przede wszystkim ma wygodną pracę z projektami. Wystarczy otworzyć w nim... folder, w którym trzymamy pliki, tworzące program/stronę www, a program wyświetli w oknie drzewo znalezionych plików, które możemy w ten sposób szybko wczytywać do edycji. Co więcej, dzięki funkcji Goto Anything... (domyślny skrót w Windows - Ctrl+P) możemy błyskawicznie odszukać właściwy plik, nie korzystając z myszki - wystarczy wpisać część nazwy i wybrać odpowiedni plik z listy. Nie trzeba tworzyć osobnej struktury czy pracowicie dodawać kolejnych plików - pracujemy po prostu na tym, co akurat mamy.

Klawiatura

Przyznam, że to, co mnie najbardziej ucieszyło podczas pracy z Sublime Text, to możliwość używania głównie klawiatury, z minimalnym wykorzystaniem myszki. Zdecydowana większość poleceń ma skróty klawiaturowe, które dodatkowo można zmieniać i przypisywać własne. Program ma jednak pewną unikalną funkcję, uaktywnianą przyciskiem Ctrl+Shift+P. Pokazuje się wówczas okienko, w którym można zacząć wpisywać nazwę żądanego polecenia (choćby byłoby to wyświetlenie okna "O programie"). Program filtruje listę poleceń, zostawiając na niej tylko te pasujące do wpisanej frazy. Do czego to się może przydać? Czasem pamiętamy, że gdzieś było polecenie np. do zmiany wielkości znaków, nie wiemy jednak, jaki skrót je uruchamiał ani w jakim menu go szukać. Naciskamy jednak Ctrl+Shift+P i wpisujemy "case" i od razu widzimy polecenia "Convert case", z których wybieramy żądane. Dodatkowo na liście można podejrzeć skrót klawiaturowy, jeśli jest przypisany. Naprawdę przydatna rzecz!

W ten sposób można bardzo szybko zmienić styl kolorowania składni (gdy np. dopiero co utworzyliśmy plik, jeszcze bez zapisywania go, nie ma on ustawionego kolorowania). Wywołujemy polecenie Ctrl+Shift+P i wpisujemy "syntax php", po czym szybko wybieramy stosowne kolorowanie.

Miniaturowy podgląd dokumentu

Twórcy programu wpadli na ciekawy pomysł i umieścili po prawej stronie miniaturę dokumentu, która służy jako poglądowy pasek przewijania. Takiego rozwiązania również nigdzie indziej nie widziałem, a po owych kilku dniach przyznam, że bardzo pomaga - w innych programach zwykle zapamiętuje się "mniej więcej", w którym miejscu trzeba ustawić suwak paska przewijania, aby znaleźć się w określonym miejscu. Znacznie łatwiej jest jednak kojarzyć często charakterystyczną postać samego dokumentu ("o, to duże wcięcie to właśnie seria wyliczeń, gdzie chcę skoczyć"). Oczywiście, jeśli kogoś ta miniatura irytuje, można ją bez problemu ukryć.

Wielokursor

Wielokursor to coś, czego do tej pory nie spotkałem w żadnym innym programie. Chodzi o funkcję, kiedy w edytorze mamy jednocześnie wiele miejsc do wpisywania tekstu i gdy piszemy, we wszystkich tych miejscach pojawia się to samo. Do czego można taką funkcję wykorzystać? Mnie najbardziej pasuje tutaj "pseudorefaktoryzacja", czyli jednoczesna zmiana jakiegoś tekstu na inny w wielu miejscach. Gdy używamy w jakiejś funkcji PHP zmiennej nazwanej np. $dzien, ale chcemy zmienić jej nazwę na $data, w normalnych edytorach zrobilibyśmy to ręcznie (gdyby wystąpień było kilka) lub za pomocą funkcji Znajdź/Zastąp (dla wielu wystąpień). Sublime Text daje nam trzecią możliwość - szybkiego zaznaczenia wszystkich wystąpień (Alt+F3) i natychmiastowego wpisania nowej wartości (która wpisze się we wszystkich zaznaczonych wystąpieniach).

Snippets

Nie spotkałem się z dobrym tłumaczeniem terminu snippet, więc pozostawiam go w oryginalnej postaci. Chodzi oczywiście o predefiniowane fragmenty kodu, które można wstawiać do własnego dokumentu. Fragmenty te mogą być "inteligentne", tzn. mieć zapisane miejsce ustawienia kursora czy wypełnienia parametrów. Niektóre programy oferują wprawdzie taką funkcjonalność, ale muszę przyznać, że w Sublime Text zrobiono to rewelacyjnie. Po instalacji mamy dostęp do małego zbioru gotowych snippetów, ale możemy oczywiście tworzyć własne lub pobierać kolejne z sieci.

Konsola

Program jest wyposażony w specjalną konsolę, która umożliwia różne operacje, między innymi włączanie/wyłączanie funkcji, do których nie ma innego dostępu. Tutaj przyznam, że jeszcze nie badałem dostępnych możliwości - poza instalowaniem pluginu do instalowania pluginów.

Dodatki

Sublime Text to program bardzo modułowy - to, co dostajemy po instalacji, jest wprawdzie świetne, ale naprawdę ciekawie robi się dopiero po zainstalowaniu kilku świetnych pluginów:

  • Package Control - plugin dostępny pod adresem https://sublime.wbond.net/installation, umożliwiający łatwe zarządzanie pozostałymi wtyczkami (instalowanie, wyszukiwanie, usuwanie), warto zainstalować w pierwszej kolejności;
  • AdvancedNewFile - umożliwia od razu przy tworzeniu pliku podanie jego nazwy/ścieżki, przez co nie trzeba tego robić przez standardowe okienko Zapisz jako...;
  • Emmet - rewelacyjny plugin dla wszystkich pracujących z dokumentami HTML/XML; umożliwia błyskawiczne tworzenie nawet złożonych struktur znaczników; poza tym możliwe staje się szybkie tworzenie tagów poprzez wpisanie słowa (litery) i naciśnięcie klawisza Tab;
  • SublimeLinter - plugin sprawdzający poprawność składniową wielu popularnych języków (JavaScript, HTML, PHP, Lua itp.)
  • DocBlockr - plugin do łatwego komentowania kodu (na podstawie sygnatury metody tworzy odpowiedni szkielet opisu, wymieniając nazwy czy typy parametrów);
  • Tag - miły plugin, przeformatowujący kod HTML/XML (wcięcia, zagnieżdżenia);
  • LiveReload - coś, co ucieszy wielu webmasterów; plugin, który potrafi dogadać się z tak samo nazwaną wtyczką, instalowaną w przeglądarce internetowej (dostępna dla Chrome'a, Opery i Firefoksa); wtyczka automatycznie odświeża w przeglądarce aktualnie edytowaną stronę (dotyczy też np. podlinkowanego arkusza CSS);
  • View in Browser - umożliwia zdefiniowanie wielu zainstalowanych przeglądarek i wskazywanie, za pomocą której chcemy "podglądać" edytowany plik;

Co przeszkadza?

Początek z programem może być nieco denerwujący. Nie wszystkim przypadnie do gustu ciemne okno edytora, ale mnie akurat to bardzo odpowiada (tak samo mam ustawionego Total Commandera). Także ustawienia domyślnego tematu nie są idealne - moim zdaniem zakładki są zbyt ciemne, co może nie przeszkadza mocno wieczorem, ale w dzień, w jasnym pomieszczeniu czasem trudno zgadnąć, która zakładka jest tą aktywną. Na to jednak są sposoby, choćby taki, zaczerpnięty z forum programu: http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11552.

Instalowanie pierwszego pluginu (Package Control) także jest nieco skomplikowane - trzeba ze strony pluginu skopiować tajemniczy kod, który wklejamy do konsoli Sublime'a. Programiści nie powinni mieć z tym problemu, ale szkoda, że akurat program sam w sobie nie ma zainstalowanego narzędzia do instalowania innych pluginów.

Czasem problematyczne są skróty klawiaturowe, ponieważ nowo instalowane pluginy często dokładają nowe, które wchodzą w konflikt z dotychczasowymi lub z... polskimi znakami (te zaczynające się od Ctrl+Alt). Wówczas trzeba edytować pliki konfiguracyjne i powyłączać zbędne skróty (można sobie też zainstalować plugin FindKeyConflicts - dzięki niemu można szybko zlokalizować, który plugin "przywłaszczył" sobie używany przez nas skrót).

Dla niektórych kłopotliwy może okazać się sposób konfigurowania programu, oparty o edycję specjalnych plików tekstowych (robi się to w samym Sublime), jednak po namyśle stwierdzam, że nie jest to takie złe. Co więcej, pomysł, że część ustawień można przenieść z plików "default" do plików "user" uważam za świetny! Dzięki temu podczas aktualizacji do nowej wersji nadpiszą się tylko pliki "default", zaś to, co sobie poustawiał użytkownik, pozostanie nietknięte.

Warto?

Dla mnie jest to świetny kawałek kodu. Gdybym miał napisać kEDa od nowa (a od lat chodzi mi ta myśl po głowie), tak właśnie bym go sobie wyobrażał. Program da się zainstalować na pendrivie, jest wersja 64-bitowa, można go zatem wykorzystywać także na cudzych komputerach bez konieczności instalacji. Nie spotkałem się na razie z żadną niestabilnością, wszystko do tej pory działało tak, jak tego oczekiwałem (poza opisanymi wyżej niedogodnościami). Sublime Text nie zastąpi dużego "kombajnu" pokroju Eclipse'a, ale też nie takie jest jego przeznaczenie. To nie jest IDE, to po prostu szybki edytor plików tekstowych, napisanych w różnych językach. Tylko tyle i aż tyle.

2 komentarze:

Andrzej pisze...

Hejka!

No właśnie, co się stało z KED2?
Używam go od kilku lat, nawet mimo problemów z Windows7 i Windows10.
Jest szansa na dopracowanie drobiazgów i dopasowanie do współczesnych standardów. Kosmetyka. Ale jak dla mnie to wciąż najlepszy edytor chociażby z tego z względu, że jest mały i szybki.

Ladaco pisze...

KED2 umarł, niestety. Przyczyn jest sporo - przede wszystkim brak czasu (studia nie trwają wiecznie ;)) Później - zmieniłem używany język programowania (Delphi -> Java). A później okazało się, że nie działa już moja licencja na Delphi ani darmowa wersja (a w nowych wersjach nie działają komponenty użyte w kEDzie) i tak oto rozwój się zatrzymał. Jakiś czas temu uwolniłem źródła na prośbę kilku osób zainteresowanych rozwojem, gdzieś pojawiło się nawet repozytorium i miała się pojawić nowa wersja, ale projekt jakoś upadł. No i tyle...

Ja już na pewno nie będę grzebał w dziesięcioletnim kodzie, zwłaszcza że do pracy spokojnie wystarcza mi choćby opisywany SublimeText...