Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Vim vs Notepad++

Jak można było zauważyć w jednym z moich poprzednich wpisów, jestem wielkim fanem Vima. Na tle mojego poprzedniego edytora - Notepada++ - chciałbym pokazać jego najsilniejsze strony, jak również i wady.

Dostępność

Notepada++ przestałem używać jeszcze zanim porzuciłem Windowsa, więc nie przeszkadzał mi brak wersji na inne systemy. Mimo wszystko, jest to jedna z jego największych wad. Udało mi się go z powodzeniem uruchomić pod Wine, ale nie czułem się z takim rozwiązaniem komfortowo.

Vim jest dostępny na wszystkie znane mi "duże" systemy. Windows, GNU/Linux, Mac OS, BSD, Solaris i pewnie inne, o których teraz zapomniałem - na każdym z nich możemy bez problemu korzystać z tego samego edytora. Po części można go też używać np. na Symbianie, chociaż to trochę oszukiwanie. Mam na myśli korzystanie z niego przez protokół SSH. Obsługiwanie Vima na klawiaturze telefonu nie jest moim ulubionym zajęciem, ale co kto lubi - da się.

Interface

Notepad++ ma bardzo rozbudowane menu z przeróżnymi narzędziami. Mimo swojej liczebności, opcje nie przytłaczają - wszystko jest sensownie poukładane w menusach, z wierzchu widać niewiele. Ma to tę wadę, że do części narzędzi trzeba się dokopać. Na szczęście są skróty klawiszowe. Belka z najczęściej używanymi przyrządami budzi u mnie mieszane uczucia. Część przycisków jest dobrze dobrana, ale niektórych nigdy nie zdarzyło mi się używać. Kiedy przestałem korzystać z Notepada++, nie było możliwości modyfikacji wyświetlanych guzików, więc był to pewien problem. Nie wiem czy od tego czasu coś się zmieniło.

Vim w wersji "tradycyjnej" w ogóle nie posiada żadnego menu. Tylko edytor i my. Wszystko wykonuje się za pomocą klawiatury. Takie rozwiązanie świetnie się sprawdza na laptopach. Jest jeszcze wersja z menu - gVim - ale nie przypadła mi do gustu - jest swoistym zaprzeczeniem idei tego programu. Vim posiada kilka trybów działania - znany wszystkim tryb "piszę, a literki się pojawiają" jest tylko jednym z wielu. Pozwala to na zastosowanie jednoprzyciskowych skrótów klawiszowych. Skupienie się na klawiaturze sprawia, że do praktycznie każdego narzędzia możemy się dobrać z podobną szybkością - nie marnujemy czasu na grzebanie w menu.

Użytkowanie

Poza narzędziami w menu, Notepada++ używa się bardzo podobnie jak zwykłego edytora tekstowego w stylu Notatnika. Można go używać od razu po pierwszym włączeniu - nie ma żadnych niespodzianek.
Z dostępnych opcji mogę wymienić przykładowo makra, porównywanie plików czy różne przekształcenia tekstu (np. spacje -> taby). Ogółem, porządny zestaw.
W internecie można znaleźć sporo wtyczek rozszerzających możliwości programu.

Jedną z największych zalet, a zarazem i wad Vima jest jego nietypowość. Przez pierwszy tydzień odczuwa się ją bardzo boleśnie. Jak już wspomniałem, Vim opiera się na skrótach klawiszowych. Potrzeba czasu, żeby sobie przyswoić podstawy. Na szczęście jest bardzo dobra dokumentacja dostępna z poziomu programu (po angielsku).
Jeśli chodzi o możliwości Vima, to doświadczenie nauczyło mnie jednej rzeczy. Jeśli brakuje mi czegoś w Vimie, najprawdopodobniej nie wiem po prostu jak to uruchomić lub jak się to nazywa. O ciekawszych funkcjach już pisałem. Nie ma sensu żebym tutaj wszystko wypisywał - jest tego za dużo, lepiej szukać na bieżąco, gdy będzie potrzeba.
W internecie są setki, jeśli nie tysiące, wtyczek do Vima. Każdy znajdzie coś dla siebie.
Możliwości konfiguracji są praktycznie nieograniczone. Ze względu na skryptową naturę Vima, niemal każde zadanie można sobie zautomatyzować.

Programowanie

Notepad++ obsługuje podświetlanie składni dla każdego bardziej znanego języka. Jeśli jakiś język nie jest obsługiwany, można ręcznie dorobić podświetlanie w łatwym w obsłudze kreatorze. Nie będzie tak rozbudowane jak wbudowane, ale źle nie jest.
Nie zauważyłem, żeby Notepad++ formatował tekst - wszystkie wcięcia trzeba robić ręcznie. Jedyne co robi program, to zachowywanie wcięcia z poprzednich linii w nowych liniach.

Vim podświetla składnię chyba każdego istniejącego języka. Możliwe, że nieistniejących też, ale miałem trudności z przetestowaniem. Poza językami per se, Vim podświetla też wiele plików konfiguracyjnych - screenrc, grub.conf, muttrc, vimrc (a co!), fstab i wiele innych.
Formatowanie tekstu Vima to jedno z najlepszych jakie widziałem. Wcięcia po while, for czy klamrze otwierającej. Cofanie wcięć przy else, endif, klamrze zamykającej. Vim jest nawet w stanie sparsować plik bez wcięć i sensownie je dorobić.

Do obu edytorów są wtyczki, które dodają opcje znane z różnych IDE - np. spis klas, funkcji i innych bzdetów.

Inne dobrodziejstwa

Notepad++ raczej nas niczym nie zaskoczy, ten fragment chcę poświęcić Vimowi.

Po pierwsze, Vim nie wymaga do działania środowiska graficznego. Świetnie się sprawdza, gdy sobie coś popsujemy i mamy tylko terminal. Nie ma też problemu ze wspomnianą obsługą przez SSH. Dodam, że można też przez ten protokół edytować lokalnym Vimem pliki na zdalnym serwerze. Polecam zaopatrzyć się w klucz RSA, bo można się zachlastać od częstego wpisywania hasła.

Po drugie, Vim (lub jego przodek - vi) jest dostępny praktycznie na każdym systemie uniksopodobnym. Nawet mój router ma vi! Chyba tylko Gentoo nie ma go w standardzie (CZEMU MI TO ROBICIE?!). Dzięki temu, gdziekolwiek nie będziemy, tak długo jak będzie to Unix (z wyłączeniem Gentoo), tak długo będziemy mieli znany nam edytor. Niestety na Windowsie dalej jesteśmy skazani na Notatnik.

Podsumowanie

Notepad++ to naprawdę solidny i prosty w obsłudze edytor, ale gdy zdarza nam się używać czegoś innego niż Windows, jego wybór odpada. Jeśli korzystamy jedynie z Windowsa, jest to jeden z najlepszych edytorów programistyczno-tekstowych. Co również ważne, nie jest ociężały jak większość pełnych IDE.

Gdy raz się nauczymy używać Vima, nie musimy już szukać innego edytora. To na swój sposób inwestycja w przyszłość. Nie jest to edytor dla każdego, ale żaden inny tyle nam nie zaoferuje. Ja w Vimie piszę wszystko - programy, maile, configi, dokumentacje czy wpisy na blog dobrychprogramów (a w szczególności ten). Tak naprawdę, poznanie Vima ma tylko jedną dużą wadę - inne edytory nagle stają się diabelnie niewygodne. ;)

I tym optymistycznym akcentem chyba zakończę ten przydługi wpis. 

oprogramowanie programowanie

Komentarze

0 nowych
iluzion   5 #1 13.03.2011 19:06

(g)Vim to rzeczywiście świetny edytor. Sam jestem zwolennikiem Emacsa. Jeśli chodzi o możliwości i wsparcie języków (również tych mniej popularnych) to edytory te chyba nie mają sobie równych. Ewentualnie jEdit może z nimi stanąć do "walki". Testowałem ostatnio kilka edytorów (pn2, n++, scite, komodo) pod kątem wsparcia dla składni Pythona, reStructuredText, Haskella i LaTeX-a.

O ile z Pythonem radzi sobie każdy, to reStructuredText wspiera jedynie (g)Vim i Emacs. Komodo wspiera, ale częściowo. Są pewne elementy, z którymi sobie nie radzi i psuje kolorowanie składni do końca pliku. Dodatkowo (g)Vim i Emacs pogrubiają, pochylają czcionkę tekstu, który zawarty jest pomiędzy odpowiednimi znacznikami.

Z LaTeX-em radzi sobie chyba każdy z wymienionych poza Komodo, który ma buga (został już zgłoszony) i nie koloruje składni. Najlepiej z LaTeX-em radzi sobie Emacs, który nawet indeksy górne i dolne potrafi w "wizualny" sposób wyróżnić, nie wspominając już o zróżnicowaniu wielkości czcionki tytułów rozdziałów.

Haskella domyślnie wspiera (g)Vim i Komodo. Emacs wymaga dodania haskell-mode, ale po jego dodaniu oferuje (chyba, może Vim ma jakiegoś "asa w rękawie") największe możliwości.

Podsumowując: Emacs i (g)Vim (pomimo pewnych wad i początkowo dość trudnej obsługi) nie mają sobie równych (wg mnie). Ciekawym edytorem jest też Komodo, świetnie radzi sobie z językami oficjalnie wspieranymi przez ActiveState, ale jest dość "ciężki".

BenderBendingRodriguez   6 #2 14.03.2011 12:34

Polecam kate z graficznyh programów, jeden z lepszych.

Co do vim w gentoo to zawsze można go zainstalować przecież aczkolwiek dziwna to decyzja że nano jest standardowym edytorem gdy gentoo jest w zasadzie skierowane do bardziej zawansowanych użyszkodników :)

Druedain   13 #3 14.03.2011 13:06

Hmmm... Jeżeli Vim okaże się dla mnie równie wygodny i funkcjonalny jak NetBeans to chętnie się przerzucę. Na razie strzelam do celu z zamkniętymi oczami... Zobaczymy, czy tydzień wystarczy... czy w ogóle wytrzymam tydzień z tym edytorem... Na razie przeglądam artykuły, poprzedni Twój wpis i "książkę" na Wikibooks. Pozdrawiam!

  #4 14.03.2011 13:44

No właśnie, skoro autor tego wpisu tak ceni sobie ów program, może posiliłbym się o wpis, który wyjaśniałby podstawy działania Vima i dał kilka wskazówek użytkownikom zaczynającym swoją przygodę z tym edytorem? Ja z chęcią coś takiego przeczytam ponieważ po polsku w necie trudno znaleźć coś w miarę zwięzłego i popartego subiektywnym doświadczeniem.

iluzion   5 #5 14.03.2011 13:51

@Druedain

Na początek polecam "vi and Vim Editors Pocket Reference" Arnolda Robinsa, a później "Hacking Vim" Kima Shulza, jeśli będziesz miał ochotę poznać lepiej Vima. Można znaleźć m.in. w zasobach Google Books.

  #6 14.03.2011 15:29

IMO te tryby wprowadzania itp to już trochę przeżytek

Vifon   5 #7 14.03.2011 15:31

@iluzion
Emacsa znam w podstawowym stopniu i muszę przyznać, że ciekawy program. Niestety bardzo mi przypomina domek z kart - cały czas mam wrażenie, że jak coś ruszę, to popsuję. Pewnie błędne, ale powiedz to mojej podświadomości.

@BenderBendingRodriguez
Jasne, że można doinstalować, ale przez pierwsze kilkanaście minut instalacji mam tylko nano.

@Druedain
Nie wiem czy jest sens czytać książki o Vimie. Moim zdaniem najlepiej zaliczyć Vimtutor, a potem po prostu używać. Gdy będziesz potrzebował jakiejś funkcji, której nie znasz, to wtedy możesz się odwołać do Google'a. Ja tak robiłem i nieźle na tym wyszedłem.

@Anonim
Jeśli są chętni do czytania, to z wielką chęcią coś takiego napiszę, ale problemem jest czas. Gdy uda mi się go trochę znaleźć i skończę co już zdążyłem rozgrzebać, chętnie zabiorę się do roboty.

Vifon   5 #8 14.03.2011 15:37

@Anonim | 14.03.2011 15:29
Nie ma przymusu - jest eVim (Vim zablokowany w trybie wprowadzania), są setki innych edytorów. A jednak Vim się z jakiegoś powodu trzyma.
Vim jest w dużej mierze edytorem programistycznym. Podczas programowania znacznie częściej przeglądasz, przenosisz czy modyfikujesz kod niż go piszesz. A do tego celu tryb normalny Vima jest naprawdę wygodny. Pozostałe tryby są tutaj jedynie w celach pomocniczych.

Airborn   8 #9 14.03.2011 16:35

Fajnym wprowadzeniem do Vima jest również vimtutor. Instaluje się chyba w paczce razem z vimem.

kwpolska   5 #10 14.03.2011 17:19

"Chyba tylko Gentoo nie ma go w standardzie (CZEMU MI TO ROBICIE?!)."
Nie tylko Gentoo. Większość dystrybucji idiot-friendly nie ma. Arch też nie posiada (ale jest vi).

Vifon   5 #11 14.03.2011 17:44

@kwpolska
Ja właśnie o vi mówię. Że Vima nie ma to rozumiem (30+ MiB), ale vi mógłby być. Zwłaszcza, że - jak zauważył BenderBendingRodriguez - jest to distro dla zaawansowanych.

przemor25   14 #12 17.03.2011 01:19

Bardzo ciekawy ten Vim.

Jaahquubel_   12 #13 18.03.2011 13:53

@Vifon
"Jeśli są chętni do czytania, to z wielką chęcią coś takiego napiszę, ale problemem jest czas. Gdy uda mi się go trochę znaleźć i skończę co już zdążyłem rozgrzebać, chętnie zabiorę się do roboty."
Dopisz mnie do chętnych. Może i ja zostanę hardkorem i będę używał Vima? Jak na razie, dzięki blogowi na DP, zacząłem używać Guake.