W zamierzchłych, zamierzchłych już czasach, gdy jeszcze pracowałem na co dzień z Pewnym Systemem Operacyjnym Pewnej Firmy z Redmond ™, używałem bardzo przyjemnego, tekstowego, przyjemnie mocno konfigurowalnego edytora jakim jest Edit+. Nie wyobrażałem sobie wtedy pracy z czymś innym. No, prawie - szukałem przez długi czas, nawet bardzo długi, czegoś lepszego, ale się nie dało… :)
Później nadszedł czas, kiedy zmieniłem Pewien System Operacyjny Pewnej Firmy z Redmond ™ na Jedyny Właściwy, Miłościwie Nam Panujący System Operacyjny ™. Tenże system to oczywiście Linux :)
Szukając i przeglądając rózne Linuksowe edytory, a jest ich całkiem sporo, natrafiłem (no dobra, nie dało się nie natrafić) na Vima, który, po krótkim przeszkoleniu, stał się Jedynym Prawdziwym Następcą ™ Edit+ :)
Vim pozwala na sprawną edycję, wraz z kolorowaniem składni, naprawdę wielu rodzajów plików. W sumie, nie znam takiego którego by nie umiał w konkretny sposób pokolorować :) A ja go najczęściej używam do edycji plików systemowych, albo do kodowania w językach PHP, Python, C++, C#, XHTML/HTML/CSS i JavaScript, a ostatnio także Perl, z czego języki C++ i C# znacznie rzadziej. Szczególnie ostatnio.
O ile do plików systemowych i tekstowych Vim w zupełności wystarcza, o tyle do pozostałych języków szukałem też już od dość długiego czasu czegoś, co pozwala mi w przyjemny i wygodny sposób zarządzać projektami, będzie mi co nieco podpowiadał jeśli chodzi o składnie kodu, pozwalało mi na szybkie przechodzenie między poszczególnymi kawałkami kodu (coś a la drzewo metod/funkcji) i znaczniki (bookmarki? w Vimie to się nazywa markery OIDP - chodzi o zaznaczenie linii kombinacją klawiszy, przejście gdzie indziej, znów zaznaczenie, a później za pomocą innej kombinacji klawiszy szybkie przechodzenie między tymi zaznaczonymi liniami), a do tego było wygodne jak Vim :) A jeśli już dałoby się tego używać także pod Windowsem, to już zupełnie bajka :)
Przeszedłem przez róźnego rodzaju IDE, jak Eric3 (tylko dla Pythona), Eclipse, Zend Studio, jak też mnóstwo zaawansowanych mniej lub bardziej edytorów, jak choćby jEdit czy gedit. I wciąż to nie było to ;) Albo za toporne, albo zbyt wolne, albo różne takie.
W końcu się stało. Natrafiłem na NIEGO. I się zakochałem ;)
Kilkanaście dni temu zaczęłem używać nowego, dla mnie, edytora: Komodo w wersji 4.0beta. I jak na razie, nie wliczając obsługi bugów ;) które jako wersja beta jeszcze posiada, jest prawie idealny:
- Tryb emulacji Vima daje mi swobodę, wygodę, możliwości i ułatwia przejście z Vima.
- Bardzo duże możliwości konfiguracyjne (no dobra, zdaje się że nieco mniejsze niż właśnie Vima :) ) dają mi możliwość dopasowania środowiska dla moich potrzeb (to był jeden z powodów dla których zaczęłem używać Linuksa…).
- Pełna obsługa (pełna, czyli nie tylko kolorowanie składni, ale podpowiadanie kodu, debugger, interaktywny shell i kilka takich różnych) języków JavaScript, PHP, Python, Perl i kilku innych, akurat mi niepotrzebnych, pozwala mi na swobodne poruszanie się w używanym akurat projekcie.
- Właśnie, obsługa projektów.
- Przeglądarka kodu w postaci drzewa, o czym pisałem wcześniej.
- Możliwość edycji plików znajdujących się na serwerze zdalnym (poprzez FTP, SFTP lub SCP).
- W wersji Professional obsługa systemów kontroli wersji CVS i SVN.
- Makra.
- Wstawki (snippety).
- Wieloplatformowość - zbudowany na bazie tego samego toolkitu co Firefox.
- dużo, dużo więcej….
A czemu tylko prawie idealny? No cóż, nie ma rzeczy idealnych ;) Mógłby być czasem nieco szybszy (aczkolwiek u mnie jest i tak dużo szybszy niż molochy typu Zend Studio czy Eclipse), mógłby być tańszy… Jeszcze kilka takich drobiazgów by się znalazło :) Ale mi jak na razie wystarcza. Jeśli tylko naprawią te bugi, które im zgłosiłem, a które dotyczą zarządzaniem projektem (przede wszystkim), to natychmiast po wyjściu 4.0 Full wysupłam te parę groszy na niego :) IMO warto… :)
Znalazłem także Windziany edytor, który ma jedną wg mnie niesamowitą funkcję: jest zintegrowany z systemem zarządzania wersjami, dzięki czemu jest pełne undo, także po zamknięciu pliku, możliwość tworzenia gałęzi kodu, z możliwością łatwego powrotu do któregoś z poprzednich rozgałęzienia etc. Niby nic, niby można to zrobić ręcznie, instalując sobie na localhoście choćby Subversion, ale to nie to samo: trzeba pamiętać o ręcznych commitach, o wielu nieistotnych szczegółach, a tutaj jest wszystko ładnie zintegrowane, z drzewkiem historii i takie tam. Dla mnie bomba.
PS. Ten edytor to e - Collaborative Text Editor.