Vim jako środowisko pythonowe

Vima używam od, jak to się mówi, "od zawsze". W międzyczasie próbowałem też kilku innych edytorów (między innymi bardzo silnego jEdit) czy inne oprogramowanie-do-wszystkiego (czyli IDE) - Eclipse i Netbeans, jednak w przypadku pisania czegokolwiek w Pythonie zawsze brakowało mi w nich pewnego rodzaju elastyczności.

Jasne - Eclipse ma świetny Pydev, jednakże sam edytor w Eclipse jest.. hm.. jakiś jest - nic rewelacyjnego. Podobnie jest z Netbeans. Jedit to osobna historia, ponieważ jest to typowy edytor programistyczny, a nie IDE, więc jego wsparcie dla poszczególnych języków rozkłada się bardzo różnie. Dla przykładu jEdit ma całkiem fajne pluginy dla Ruby, a konkretnie dla Railsów, natomiast z Pythonem jest trochę gorzej.

Poszukiwania edytora na tyle lekkiego i uniwersalnego który jednocześnie zapewniałby przyzwoite wsparcie dla Pythona doprowadziły mnie do punktu wyjścia. Każdy z nich miał co prawda swoje zalety, ale również i wady. Dlatego też, postanowiłem nieco "podrasować" VIMa, celem uczynienia z niego przede wszystkim zaawansowanego edytora, którym przecież jest :) i dodaniu kilku elementów wspomagających pracę.

Wygląd

Vim w poszczególnych dystrybucjach dostarczany jest w wersji graficznej i tekstowej (to znaczy takiej, która będzie mogła zostać użyta w emulatorze terminala). Różnice pomiędzy Gvim a Vim są dość nieznaczne i skupiają się głównie w dodanych możliwościach interfejsu graficznego, m.in.: pełniejsza obsługa myszką, konfigurowalne menu główne, popup menu, tooltops, graficzne karty, obsługa pełnej palety kolorów. Vim potrafi też obsłużyć 256 kolorów, jeśli terminal na to pozwala. Obecnie używam rxvt-unicode z włączoną łatką umożliwiającą wyświetlenie 256 kolorów.

Temat kolorów, który używa się w edytorze jest kwestią gustu. Znam całą masę osób wypalających sobie oczy z jaskrawym, domyślnym tematem Eclipse, którzy uważają, że to normalne, natomiast ja od zawsze preferowałem tematy z ciemnym tłem, dlatego też spośród setek dostępnych tematów wybrałem wombat256.vim, który to delikatnie zmodyfikowałem do swoich potrzeb.

Narzędzia

W jEdit byłem przyzwyczajony do rozmieszczenia poszczególnych wizualnych części edytora jak poniżej:

screenshot: jEdit4.3pre17

screenshot: jEdit4.3pre17

Po lewej stronie pliki projektu (plugin Project Viewer), po prawej code browser (ctags), na dole konsola (ograniczona, ale czasem się przydawała), hypersearch, error list i interpreter Jythona. W centralnej części edytor.

Chciałbym, aby Vim zapewnił mi podobne środowisko, dlatego też przeszukałem http://www.vim.org w poszukiwaniu gotowych skryptów, szczególnie pod kątem edycji plików Pythonowych.

Oto co otrzymałem jako środowisko końcowe:

screenshot: Vim i urxvt

screenshot: Vim i urxvt

Po lewej stronie znajduje się NERD Tree, który zastępuje (w pewnym stopniu) jEditowy plugin Project Viewer, po prawej jest Tag List korzystający z ctags code browser. W środku źródło. Konsoli w oknie edytora brak, i choć istnieje patch, jakoś nie miałem potrzeby posiadania kolejnego bufora z bashem. Tyle na pierwszy rzut oka. Ale to nie wszystko. Oto co w środku:

Vim, jako porządny edytor, jest też wykorzystywany w jako wewnętrzny edytor dla projektów takich jak Pida oraz jako plugin dla Eclipse Eclim. Ten ostatni dostarcza dość sporo skryptów m.in. dla plików Pythonowych, które można używać poza Eclimem. Eclim korzysta między innymi z Rope, narzędzia do refaktoryzacji kodu. Daje też wsparcie dla projektów pisanych w Django. Z części tych rzeczy można korzystać bez Eclipse.

Sądzę, że ten drobny artykuł zachęci do bliższego zaznajomienia z Vimem.


, Etykiety: linux, python, vim