Wątek przeniesiony 2015-09-16 22:56 z Nietuzinkowe tematy przez Rev.

Najprawdziwsza prawda o vimie

0

Patrze sobie w wyszukiwarke, i nie ma takiego tematu, to myślę że warto zapytać. Otóż jak to z tym vimem tak naprawde jest. Coś czuje że to troche pod flame podchodzi, ale cóż, zostawie w tym dziale.

Po obowiązkowym przeszukaniu google i stacka z pytaniami czy vim faktycznie (po zapoznaniu się z nim) potrafi przyspieszyć pracę (albo chociaż jej nie spowalniać :D), widzę że są takie dwa obozy, jeden to ci którzy z powodzeniem, przynajmniej z tego co mówią, korzystają z vima, a drudzy to ci którzy odradzają i mają żal do tego, kto im ów vima polecił (bo zmarnowali czas), jednoznacznej odpowiedzi - raczej nie ma, wiadomo, edytor to po trochu kwestia gustu.

Jeśli chodzi o mnie, to jestem człowiekiem o anielskiej cierpliwości, i od jakiś już dwóch tygodni próbuje się zakolegować z vimem, idzie kiepsko bo jak na razie to tylko spowalnia, no, ale się nie poddaje ; ]

Vima wybrałem bo, ma sporo fajnych pluginów, jest wszędzie dostępny (Linuchy), a że z Windowsa nie korzystam i korzystać nie będę (najwyżej w pracy, bo pewnie takie wymogi), no to chcę sie nauczyć vima.

Więc, jakie jest wasze zdanie na ten temat, czy vim faktycznie po dłuższym czasie użytkowania, jest wygodnieszy?

4

Takich tematów było już trochę, więc w skrócie:

  1. Vim jako edytor tekstu (np configów, logów, notatek, małych skryptów) - tak. Vim jako IDE i podstawowe narzędzie kodowania - (IMO) nie.
  2. Moim zdaniem, nie na siłę (tu są dwa obozy, możesz usłyszeć też inne opinie):

Jeśli chodzi o mnie, to jestem człowiekiem o anielskiej cierpliwości, i od jakiś już dwóch tygodni próbuje się zakolegować z vimem, idzie kiepsko bo jak na razie to tylko spowalnia, no, ale się nie poddaje ; ]

Dlaczego spowalnia? Przy domyślnych ustawieniach możesz go używać równie dobrze na zasadzie "nacisnąć a/i/o, i do przodu". Strzałki działają, można używać jak notepada na sterydach - na windowsie nawet chyba ootb działają ctrl-c/ctrl-v/ctrl-x (to przesada trochę, ale na początek ujdzie :P). Btw. tak, korzystam z vima głównie na windowsie.

Jeśli chodzi o mnie, to jestem człowiekiem o anielskiej cierpliwości, i od jakiś już dwóch tygodni próbuje się zakolegować z vimem, idzie kiepsko bo jak na razie to tylko spowalnia, no, ale się nie poddaje ; ]

Dla mnie na pewno. Do pisania i czytania plików tekstowych nie potrafię używać czego innego bez denerwowania sie (jeszcze sublime text jest dobre, ale powoli rozwijane, i jak trzeba coś bardziej skomplikowanego zrobić to kopiuje wszystko i wracam do vima). No i modalność po przyzwyczajeniu się jest bardzo intuicyjna.

Ale żeby być obiektywnym - nie wiem na ile to syndrom sztokholmski ;). No i tak naprawdę ważne jest to żeby poznać dobrze jeden tego typu edytor i umieć w nim odruchowo zrobić najczęściej potrzebne rzeczy. Są potężniejsze i słabsze edytory, ale to czy ktoś używa vima, emacsa, sublime, atoma, notepad++, czy vs code jest mniej ważne - w 95% przypadków wszystkie są wystarczająco dobre.

0

Czy warto znać? Podstawy tak, bo to jak z assemblerem - ed jest jednym z najstarszych edytorów tekstu a vi jest oparty o jego rozbudowaną wersję o nazwie ex.

Czy używać? Zależy od osoby. Czasem niektórzy się przekonają do potęgi Vima i nauczą się tam naprawdę czarować (http://www.vimgolf.com/), a innym będzie to nie odpowiadać. Czy zmuszać się na siłę? Na pewno nie. Ja na początku pracowałem na zmianę w Sublime i w Vimie. Aktualnie używam już tylko Vima (Nvima będąc dokładnym).

0

Vim przy odpowiednio dużej praktyce oraz odpowiedniej konfiguracji potrafi zastąpić IDE. Jednak jest to niepotrzebny wydatek czasu i energii, ponieważ to wszystko co potrafimy w Vim zrobić po wielu godzinach pracy, po skonfigurowaniu i opanowaniu skrótów klawiszowych mamy od razu w IDE.

0

Warto z jednego powodu - w kazdej pracy musialem sie logowac do roznych dziwnych serwerow Unixowych, i jesli potrzebuejsz przejrzec pliki, zmienic konfiguracje etc. vi zawsze tam jest.

0

Tak, znać warto, ponieważ rzeczywiście jest na każdym linuchu. Jednak autorowi wątku chodziło raczej o zupełne zastąpienie IDE na rzecz Vim.

0

No, chodziło mi o całkowitą migracje na vima.
Popisze jescze chwile w nim, jak dalej będzie tak kiepawo, wracam na jakiś edytorek (IDE nie używam).
Dzięki za opinie.

2

Nie widzę sensu "uczyć się vima", ale co kto lubi.
Ale umiem z niego wychodzić, o.

0

Vin - jako narzędzie do edycji małych plików, wszędzie działający etc. - super, warto umieć się poruszać i - hehe - wyłączyć.
Vim - jako IDE do języków posiadających już dobrze wspierane IDE, być może dla sztuki można, ale raczej tutaj szkoda zachodu.
Vim (lub Emacs) - jako IDE to mniej popularnych języków czy dopiero wchodzących to chyba najlepsza opcja, bo pluginów jest masa i naprawdę można skonfigurować sobie wygodne środowisko.

Jak się nauczyć Vima? Tak jak konsoli linuksa. Nie używać niczego innego (jak czegoś nie wiesz to google) i po dwóch tygodniach na pewno wprawa wejdzie, pamięć mięśni zrobi swoje.

0

Fakt, nauczysz się podstawowych komend w ten sposób przez 2 tygodnie, ale nadal będzie kiepawo. Vim trzeba jeszcze sobie dobrze skonfigurować, poinstalować jakieś pluginy, poznać różne sztuczki, których nie ma w tych podstawowych tutorialach. Najlepiej mieć jakiegoś mentora, który pokaże jak używa tego narzędzia i coś podpowie. O używaniu Vim można zrobić co najmniej wielogodzinny wykład, a może nawet napisać grubą książkę. Jeżeli chodzi o "sztukę dla sztuki" to rzeczywiście wielu zwolenników tego narzędzia ją uprawia.

0

Pracuję teraz z vimem jako IDE i jest to możliwe ;-) Poniekąd nie z własnego wyboru, mógłbym odpalić jakieś IDE
Czy wygodne? Z moim stopniem znajomości - wygodne, ale nadal pewne rzeczy irytują. Do pewnych chciałoby się mieć np. Visual Studio. Nie potrafię efektywnie skakać po plikach, nie pamiętam często jak otworzyć plik z tagiem pod kursorem w nowym tabie przechodząc od razu do jego edycji, nie poruszam się po pliku w efektywny sposób. Innym razem to vim pokazuje klasę, kiedy mogę nagrać sobie makro i wygenerować w ten sposób gettery/settery/whathever, sprytnymi bindingami przeformatować cały kod, etc. Ale nie ukrywam, że jest to pewna forma... hm... nerdostwa? To jak z pisaniem jednolinijkowców w perlu.

Mam też kolegę na zupełnie innym poziomie znajomości vima. W jego przypadku edytor kilkakrotnie podnosi wydajność programisty, a obserwowanie czarów jakie tam się odbywają jest nawet dziwnie fascynujące. Kolega używa sporej gamy różnych pluginów, ale nie używa np. podpowiadania składni, bo "tylko by spowalniała" :)

Reasumując - czy warto, zależy od Twojego podejścia. Ja nie żałuję i chętnie uczę się dalej.

3

imo znajomosc vima przydaje sie do pracy z unixem, tak do edycji ad-hoc jakis skryptow czy konfiguracji, przy wiekszych projektach to strata czasu.

PropagandaPolityczna napisał(a):

Ale nie ukrywam, że jest to pewna forma... hm... nerdostwa? To jak z pisaniem jednolinijkowców w perlu.
uzywanie wylacznie vima przy duzych projektach jest to pewna forma utrudniania sobie zycia. natomiast znajomosc jezykow skryptowych to bardziej podstawa w wydajnej pracy programisty niz nerdostwo :)

PropagandaPolityczna napisał(a):

Mam też kolegę na zupełnie innym poziomie znajomości vima. W jego przypadku edytor kilkakrotnie podnosi wydajność programisty, a obserwowanie czarów jakie tam się odbywają jest nawet dziwnie fascynujące. Kolega używa sporej gamy różnych pluginów, ale nie używa np. podpowiadania składni, bo "tylko by spowalniała" :)
kolega pisze rozumiem bubble sorty itp? bo ciezko mi sobie wyobrazic vima kilkukrotnie podnoszacego wydajnosc programisty wzgledem vs+r# albo intellij w jakimkolwiek rzeczywistym projekcie, raczej na odwrot. podpowiadanie skladni spowalnia? no pewnie w pisaniu bubble sorta rzeczywiscie, w wypadku projektu z 50k klas i pierdyliardem dolinkowanych jarow/dll ciezko polegac wylacznie na tym co masz w glowie i co sobie doczytasz w dokumentacji (jesli wyjatkowo istnieje i jest up to date)

0
katelx napisał(a):
PropagandaPolityczna napisał(a):

Mam też kolegę na zupełnie innym poziomie znajomości vima. W jego przypadku edytor kilkakrotnie podnosi wydajność programisty, a obserwowanie czarów jakie tam się odbywają jest nawet dziwnie fascynujące. Kolega używa sporej gamy różnych pluginów, ale nie używa np. podpowiadania składni, bo "tylko by spowalniała" :)
kolega pisze rozumiem bubble sorty itp? bo ciezko mi sobie wyobrazic vima kilkukrotnie podnoszacego wydajnosc programisty wzgledem vs+r# albo intellij w jakimkolwiek rzeczywistym projekcie, raczej na odwrot. podpowiadanie skladni spowalnia? no pewnie w pisaniu bubble sorta rzeczywiscie, w wypadku projektu z 50k klas i pierdyliardem dolinkowanych jarow/dll ciezko polegac wylacznie na tym co masz w glowie i co sobie doczytasz w dokumentacji (jesli wyjatkowo istnieje i jest up to date)

Straszne oburzenie wywołąłem widzę ;-) Nie, kolega pisze niskopoziomowy kod w C/C++. Do tego nie potrzeba pierdyliarda modułów. Wystarczy za to dobry config vima + ctags (do tego dobry terminal + tmux/screen). Pozwala to skakać wydajnie po wszystkich nagłówkach i używać clanga do prekompilacji kodu (taki JIT dla C++11). Nowoczesny C++ nie wymaga od programisty ciągłego pisania MyAwesomeDerivedCarAbstractFactoryType, mamy od tego auto. W tym konkretnym przypadku, dokumentacja i tak siedzi na drugim ekranie, a nie w kodzie. Pliki otwarte są w wielu tabach/splitach, które dzielą markery i schowki, to jest coś czego w IDE właścicwie jeszcze nie widziałem.

Nie twierdzę przecież, że vim jest dobry w każdym zastosowaniu. Po prostu są pewne nisze, gdzie sprawdza się lepiej.

0

zero oburzenia, po prostu te 'kilkukrotne podniesienie wydajnosci' mi wywolalo usmiech na twarzy, tzn jak bym sie nauczyla vima to moge spokojnie zwolnic dwojke kolegow z zespolu? :)

1

w vimie mieszka szatan.

1

@katelx w przypadku niektórych języków (szczególnie czysto funkcyjnych) tak. Ponieważ vim dość dobrze i intuicyjnie działa z makrami, a te pozwalają na dużą automatyzację pisania kodu. Vim jest lżejszy niż typowe IDE i taka generacja idzie zdecydowanie szybciej.
Inną sprawą jest dostępność vim/vi/ex na maszynach.

1
Proxima napisał(a):

Po obowiązkowym przeszukaniu google i stacka z pytaniami czy vim faktycznie (po zapoznaniu się z nim) potrafi przyspieszyć pracę (albo chociaż jej nie spowalniać :D), widzę że są takie dwa obozy, jeden to ci którzy z powodzeniem, przynajmniej z tego co mówią, korzystają z vima, a drudzy to ci którzy odradzają i mają żal do tego, kto im ów vima polecił (bo zmarnowali czas), jednoznacznej odpowiedzi - raczej nie ma, wiadomo, edytor to po trochu kwestia gustu.

Zależy od podejścia i filozofii pracy. Vim jest szybki, ma małe wymagania co do zasobów i dla ludzi, którzy twierdzą, ze najwydajniej się programuje nie odrywając rąk od klawiatury - wszelkie skróty ect pozwalają pisać szybko. Ja jednak już dawno zauważyłem, że więcej daje przemyślenie sprawy i wolniejsze wklepanie kodu, w rezultacie wklepanie mniej tego kodu, niż szybkie pisanie. Ale to juz zależy od konkretnej osoby i tego co musi zrobić.

Jeśli chodzi o mnie, to jestem człowiekiem o anielskiej cierpliwości, i od jakiś już dwóch tygodni próbuje się zakolegować z vimem, idzie kiepsko bo jak na razie to tylko spowalnia, no, ale się nie poddaje ; ]

Po prostu masz już pewne nawyki i musisz je zmienić, niestety to trwa...

0

A teraz pytanie zagadka dlaczego Linus Torvalds, Richard Stalman nie używają edytora Vim tylko edytorów emacs, vi.

0

nie używają edytora Vim tylko edytorów emacs, vi

Szczerze to nie bardzo znam różnicę między vim a vi, a emacsa widziałem może raz i to jakaś kobyła wielka była (bardziej IDE niż edytor), ale pod konsolą linuksową, jeśli już muszę, to używam nano.
Jest prymitywne w porównaniu z tamtymi, obsługa też nie całkiem standardowa, ale po doinstalowaniu kolorowania składni wystarcza.

0

Stallman mowil cost takiego: ktos go zapytal czy uzywanie VI jest grzechem? Odpowiedzial ze to nie grzech ale pokuta. A co do Vima jeszcze z tego co widzialem w podcastach Gynvael Coldwin uzywa go (chocby w serii o gamedevie) http://gynvael.coldwind.pl/?id=433

0

Vim/vi jest spoko gdy duża część pracy odbywa się przez konsolę linuksa. Jak ma się napisane jakieś małe albo średnie backendy napisane w jakimś skryptowym języku (python, nodejs etc), jakieś konsolowe zabawki w C/C++, albo trzeba użyć jakiś mniej popularnych systemów budowania, albo masz problemy jak ten gość (to akurat przykład z emacsem) to vim z pluginami potrafi ułatwić pracę.
Ale jeśli pracujesz z jakimiś wielkimi obiektowymi krowami w javie czy C# to lepiej vima odstawić.

0

jakieś konsolowe zabawki w C/C++, albo trzeba użyć jakiś mniej popularnych systemów budowania

System budowania pod konsolą może sobie być (zwłaszcza jeśli jest osobna maszyna budująca, przez którą logujesz się na shella...) i wtedy bywa potrzebny taki vim do edycji plików konfiguracyjnych na przykład, ale dlaczego miałbym pod konsolą kodzić?

0

Ja mam tak, że jak mam 2 monitorową konfigurację to:

Laptok - konsola + tmux + Vim
Monitor - przeglądarka + LiveReload

W tym momencie nie muszę co chwila przerzucać się między oknami by normalnie pracować. Mysz mam cały czas w przeglądarce i jak po nią sięgam to tylko by sprawdzić jak działa strona. Inaczej mam klawiaturę do wszystkiego. IMHO i szybciej i przyjemniej.

0
Azarien napisał(a):

jakieś konsolowe zabawki w C/C++, albo trzeba użyć jakiś mniej popularnych systemów budowania

System budowania pod konsolą może sobie być (zwłaszcza jeśli jest osobna maszyna budująca, przez którą logujesz się na shella...) i wtedy bywa potrzebny taki vim do edycji plików konfiguracyjnych na przykład, ale dlaczego miałbym pod konsolą kodzić?

A kto Ci każe? A komu to potrzebne? :) Wypowiedź starałem się utrzymać w tonie "można" a nie że to jedyne/najlepsze wyjście.

0

Więc, jakie jest wasze zdanie na ten temat, czy vim faktycznie po dłuższym czasie użytkowania, jest wygodnieszy?

Może i jest, ale nie jest warty stracenia roku (lub więcej), na to żeby się go uczyć. Weź jakiegoś sublime czy inny edytor z XXI wieku jak IDE nie masz...

0

Korzystam z (g)vima gdzie tylko mogę [piszę głównie w C/C++/python], niezależnie czy piszę snippet, czy fixa do do kobyły. Także imho można bez problemu używać vima zamiast ide, oczywiście wszystko zależy co i na czym się pisze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1