Piotr Rybałtowski

Programista PHP, Symfony

IDEProgramowanie

Mój wybór edytora do Ruby on Rails: gedit + gmate

Coraz częściej spotykam developerów korzystających z komputerów Appla. Ja na razie zostaję przy maszynie z Linuksem m.in. dla oszczędności. Ale też bardzo dobrze mi się tu pracuje. Widać, że to system napędzany przez społeczność programistów. Od kiedy programuję w Ruby on Rails szukałem dla siebie jakiegoś edytora. Na początku był to Netbeans w spadku po programowaniu w PHP. Ale niestety od wersji 7.0 porzucono wsparcie dla Ruby (on Rails). Przez krótki czas używałem Aptana Studio 3, który jest bardzo fajny. Ale to jednak duże IDE, które bardziej się przydaje w językach jak PHP. Rails jest łatwy, lekki i przyjemny, więc i taki sam powinien być do edytor.

Macintosh ma swój Textmate, który ma właściwie wszystko, co programista potrzebuje do wygodnej pracy (bez ciężkiego IDE). Czy istnieje coś podobnego dla Linuksa? Ostatnio natrafiłem na dodatek gmate do gedita i teraz wiem, że tak! Gedit sam w sobie jest niezłe, ale po wgraniu tego dodatku nabiera prawdziwej mocy. Gmate to tak naprawdę zestaw pluginów, które można mieć też niezależnie. Używam tylko kilku z nich, ale zdecydowanie wystarczają, a programowanie w Ruby on Rails stało się jeszcze większą przyjemnością.

 

Moje ulubione funkcjonalności z wtyczek gmate:

* wybór schematu kolorów – wbrew pozorom jest to dość istotna rzecz. Podświetlanie składni bardzo ułatwia pracę, a z gmatem dostajemy kilkadziesiąt tematów do wyboru (do koloru). Jasne, ciemne, a nawet smurfowy. Mój wybór – temat, który nazywa się po prostu Gmate.

* „Fuzzy Open” – otwieranie pliku za pomocą wyszukiwarki. Umożliwia wpisanie słowa lub kilku słów, które mają być zawarte w nazwie, a poniżej pokazuje się lista plików, które spełniają ten warunek. Lista ograniczona jest do plików z katalogu, który jest owarty w przeglądarce plików w panelu bocznym i podkatalogów.

* „Smart Indent” – czyli automagiczne wcięcia w kodzie. Przy rozpoczęciu definicji modułu, klasy, funkcji, bloku, itp. następna linia jest wcięta, a po wpisaniu end, else, rescue, itp. linia jest przesuwana w lewo. Mała rzecz, a cieszy. I ułatwia.

* „Zen Coding” – popularny plugin w różnych IDE i edytorach. Pozwala w szybki i wygodny sposób tworzyć fragmenty HTMl, np. zapis div#navigation>ul>li*5>a[href=#] jest jednym skrótem klawiszowym zamieniany na kod:

Mniej przydatne przy tworzeniu w HAML, ale jeszcze wiele projektów utrzymywanych jest w HTML i prawdopodobnie długo tak będzie.

* „Regex Search and Replace” – wiele edytorów ma to w podstawowej wersji (np. Kate dla KDE) i dziwne, że w gedit zostało to pominięte. Wyszukiwanie i zastępowanie tekstów używając wyrażeń regularnych to bardzo przydatne narzędzie.

* „Rails Hotkeys” + „Rails File Loader” – dwa małe dodatki, ale przydatne. Oba, jak nazwy wskazują, przydatne tylko w projektach Ruby on Rails. Pierwszy to skróty do plików w projekcie. Wywołuje się przez ctrl+shift+r, a potem inny przycisk skrótu, np. będąc w pliku modelu skrótem „t”, można otworzyć jego testy, testy kontrolera oraz odpowiadający mu plik fixture. Drugi dodatek rozpoznaje, czy otwierany plik Ruby pochodzi z projektu Rails i jesli tak, aktywuje odpowiednie podświetlanie składni (też dodawane przez pluginy).

Przydatne funkcjonalności zwykłego gedita:

* podświetlanie składni – za schemat kolorów odpowiadają pluginy, ale za samo rozpoznawanie składni odpowiada gedit. Robi to naprawdę dobrze, a lista rozpoznawanych języków i typów plików jest długa.

* przeglądarka plików – funkcja, która istnieje już w podstawowym gedit. Boczny panel z przeglądarką plików z dysku. Można w przeglądrace wybrac katalog główny (np. obecnie tworzonego projektu) i rozwijać jego podkatalogi w strukturze drzewa. Widok zbliżony do widoku projektu znanego z wielu IDE. Bardzo dobrze integruje się z przeglądarką plików zarówno w Gnome jak i KDE (ten drugi widoczny na screenshocie). A dodatkowo, czego brakuje w innych przeglądarkach, katalogi „ukryte” (z „.” na początku) są za pozostałymi.

* automatyczne zapisywanie – można ustalić co ile minut wszystkie otwarte i zmienione dokumenty mają być zapisywane. Edytor PhpStorm zapisuje pliki cały czas po każdej zmienia. Nie ma opcji Save. Zapisywanie co minutę w gedit jest do przyjęcia.

Czego w gedit nie lubię? Skrótów klawiszowych. Większość programów jakie znam, ma podstawowe skróty podobne, a tutaj są nieco inne, m.in.:

* redo – undo jest standardowo pod ctrl+z, ale redo zamiast pod ctrl+y jest pod ctrl+shift+z,

* save all – zamiast ctrl+shift+s jest ctrl+shift+l,

* next/previous document – zamiast alt+left/right lub ctrl+page up/down jest ctrl+alt+page up/down.

Byłoby do przyzwyczajenia, gdybym jednak często nie korzystał również z innych edytorów, IDE i programów.

Podsumowując – zdecydowanie polecam wszystkim programistom (RoR) w Linuksie!

6 komentarzy do “Mój wybór edytora do Ruby on Rails: gedit + gmate

  • W gedit-plugins (w każdym repo) jeszcze są snippets (wstawki) i kilka innych ciekawych pluginów.
    Fajne jest jeszcze kate, (pluginy symbols i ctags), ale snippety ma raczej „biedne” w content.

  • Ja próbowałem używać gEdita do Railsów jakieś 4 lata temu. Potem było jeszcze kilka różnych edytorów/IDE. Teraz używam RubyMine, również ma Macu. Polecam sprawdzić!
    Zapraszam do Gdańska (podobno lubisz tu podróżować), a spotkanie TRUGu podyskutujemy przy piwku 😉

  • Ten RubyMine to produkcja ludzi od PhpStorm widzę, fajne rzeczy robią. Tylko płatne. Ale też spróbuję, 30 dni triala jest.

    A w Gdańsku nawet byłem parę tygodniu temu, szkoda, że wcześniej nie wiedziałem. To są jakieś spotkania ad-hoc czy wcześniej planowane np. cyklicznie? Dużo jest ludzi? W ogóle zastanawiam się jak popularny jest już RoR w Polsce, bo planuję, większe projekty niedługo robić.

  • Tak, RM jest od tych samych ludzi – JetBrains. No trochę trzeba zabulić za ich soft niestety. A spotykamy się w Trójmieście dość nieregularnie, ale zawsze jakby co informacje są na trug.pl

Skomentuj lub zadaj pytanie

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.