Czy Vim lub Emacs są praktyczne dla języków takich jak .Net lub Java? [Zamknięte]


18

Tak więc jestem przede wszystkim programistą .Net, który od czasu do czasu robi pewne rzeczy w Javie, Pythonie i kilku innych. Słyszałem, że wiele osób chwali Vima i Emacsa za znaczne zwiększenie wydajności po tym, jak podstawy zostaną sprecyzowane. Z pewnością widzę, ile funkcji może być bardzo przydatnych przy wystarczającej praktyce, a nawet wierzę, że krzywa uczenia się jest prawdopodobnie warta wysiłku. Jednak ... wydaje się, że naprawdę musiałbyś być jakimś czarodziejem makr i skrótów klawiszowych, aby być tak wydajnym w Vimie lub Emacsie, jak przeciętny programista w Visual Studio, Netbeans, Eclipse lub innych platformach. Zacząłem uczyć się korzystania z Vima i uważam, że niektóre z jego funkcji są niesamowite (na przykład edycja kolumn), ale wydaje się, że wielu narzędzi dostarczanych przez ciężkie IDE po prostu nie można zastąpić, kupując nawet najbardziej wyciśnięty tekst redaktor.

  • generowanie plików dbml dla Linq-to-SQL
  • Zautomatyzowane testowanie
  • projektowanie interfejsów użytkownika
  • Tworzenie / organizowanie projektów i rozwiązań

Wiem, że Vim i Emacs potrafią bardzo mocno robić wiele tych samych rzeczy, które VS może (np. Intellisense, refaktoryzacja itp.) I może wykonać niektóre lub wszystkie przykłady, które podałem, ale czy to realistyczne że ktoś pracujący na tych platformach faktycznie skorzystałby z Vima lub Emacsa?


2
Pracujemy w Eclipse w moim sklepie, ale jest tu facet, który używa Vima jako swojego edytora pimary i Eclipse tylko do kompilacji i zadań typu zarządzanie kodem.
Michael K,

Odpowiedzi:


14

Działają tam różne koncepcje, co może nie dziwić, ponieważ VS łączy w sobie wiele dość odmiennych funkcji. Jeden cytat (z tej strony) sugeruje, że Emacs nie jest dobrym IDE, Unix jest dobrym IDE. Chodzi o to, że w świecie Linux / Unix polegasz na wielu specjalistycznych narzędziach, które dobrze ze sobą grają, a nie na jednym monolitycznym narzędziu, które to wszystko robi.

Teraz programuję przede wszystkim w języku C # i do tego używam VS. Uwielbiam też Emacsa i używam go w zasadzie do wszystkiego innego. Teraz, jak mówisz, co możesz zrobić w Emacsie i co lepiej zrobić w Emacsie, są różne. Ale w wielu przypadkach nie jest to mapowanie 1 do 1 i istnieją różne sposoby osiągnięcia tych samych celów za pomocą edytora tekstu i / lub innych narzędzi.

Początkowo zamierzałem zająć się każdym z twoich punktów, ale odpowiedź zawsze sprowadzała się do „tak, możesz” w jakiejś formie. Zazwyczaj polegasz na: 1) zewnętrznym narzędziu (takim jak projektant interfejsu użytkownika), aby wygenerować kod, zaimportuj go; 2) obsługa automatyzacji z poziomu edytora (jak kod Elisp w Emacsie) w celu automatyzacji powtarzalnych zadań; lub 3) przyzwyczaisz się do używania narzędzi tekstowych zamiast wizualnych (takich jak MSBuild i pisanie własnych plików projektów zamiast polegać na konfiguracji VS).

W świecie Emacsa nie masz narzędzia, które to wszystko robi, masz wiele narzędzi i możesz wyhodować więcej narzędzi, których potrzebujesz. Nie wiem jeszcze wystarczająco dobrze, aby to wszystko zrobić, więc używam VS i jestem zadowolony z narzędzi, które mi oferuje. VS to naprawdę potężne, naprawdę dobre IDE. Teraz, gdybym robił Javę, musiałbym debatować, którego narzędzia użyję, ponieważ nie znam dobrze Eclipse ani IntelliJ. W przypadku każdego innego języka Emacs wygrywa, ponieważ zrobi to dla mnie o wiele więcej niż jakikolwiek inny edytor tekstowy lub w połowie wykonane IDE, których mogą używać te języki. (Może z wyjątkiem Smalltalk, ale to wyjątkowy przypadek.)


6

ale czy realistyczne jest stwierdzenie, że ktoś pracujący na tych platformach faktycznie skorzystałby na Vimie lub Emacsie?

Dam ci mój przykład: pracuję na systemie, który jest w dużej mierze (ale nie w 100%) zakodowany w języku C #. Systemu nie można zbudować z Visual Studio - jest zbyt skomplikowany. Dlatego nie mam pliku SLN (niektóre osoby próbowały go utrzymywać, mimo że nie budujemy z nim produktu, ale okazało się to niemożliwe) i nie mam zalet inteligentnego przeglądania, przeglądania kodu, diagramy klas itp. Narzędzie, które działa dla mnie to vim + ctags. Nawet to nie jest idealne (ctagi łatwo się pomylić), ale jest o wiele lepsze niż używanie gorszego edytora kodu bez obsługi przeglądania kodu.

Teraz rozumiem, że większość programistów .NET lub Java nie jest w takiej samej sytuacji jak ja i prawdopodobnie lepiej jest używać IDE, jeśli ma dobry edytor kodu lub przynajmniej dodatek poprawiający domyślny. W Visual Studio istnieją dodatki takie jak VsVim, które mogą sprawić, że kodowanie będzie przyjemniejsze. To samo dotyczy Eclipse AFAIK.


3

Wątpię, aby wielu używało VIM lub Emacsa. Ale jeszcze nie znalazłem programisty, który nie korzysta z edytora tekstu (czy to jednego z nich, czy czegoś innego) w celu uzyskania pełnego IDE dla niektórych rzeczy, często wielu rzeczy.

Pamiętaj, że w twojej pracy jest o wiele więcej niż pisanie kodu Java, C # lub C ++. Są skrypty ANT, pliki makefile, pliki XML, pliki konfiguracyjne różnego rodzaju. W przypadku wielu małych zadań czas uruchomienia tego IDE może być po prostu zbyt długi. Uruchomienie Eclipse może zająć kilka minut, podobnie jak VS. To zbyt długo, aby szybko zmienić coś w jednym źródle lub po prostu sprawdzić coś w znanym pliku. Ładowanie pliku do VIM zajmuje tylko kilka sekund.


1
choć także notatnik ++.
Raffael

nigdy go nie użyłem, ale rzeczywiście widziałem, jak inni go używają (jestem kiepski VIM :)).
jwenting

2

Uważam, że używanie IDE i vima (mojego osobistego ulubionego edytora) nie wykluczają się wzajemnie. Podczas programowania .NET zwykle konfiguruję kombinację klawiszy skrótu, która otworzy bieżący plik, nad którym pracuję w IDE w vimie i umieści kursor w tym samym miejscu. W ten sposób, jeśli chcę robić rzeczy, w których vim jest świetny, (np. Używanie makr, edytowanie w pionie, ponowne wcięcie, różnicowanie itp.), Wtedy uderzam w kombinację klawiszy i huk mam mój ulubiony edytor, zrób moje zmiany, zapisz plik i wyjdź, a następnie znowu wrócę do IDE (możesz go skonfigurować, aby plik ładował się automatycznie, gdy zostanie edytowany poza IDE w VS). W ten sposób uzyskuję to, co najlepsze z obu światów.

Kiedyś używałem języków skryptowych do manipulowania plikami tekstowymi w skomplikowany sposób. Kiedy odkryłem moc używania makr vima (i kilka innych funkcji), odkryłem, że mogę dokonywać tego rodzaju edycji / manipulacji znacznie szybciej i wydajniej niż w języku skryptowym.

Bardzo często generuję jednorazowe skrypty powłoki, aby wykonywać skomplikowane czynności przy użyciu vima, wykonywać skrypty powłoki, które zbudowałem, a następnie wyrzucać.

moje 2 centy :)


Tak, bawiłem się kilkoma wtyczkami dla VS, aby albo przeskoczyć mnie do emacsa, użyć emacsa jako „okna edytora kodu” lub po prostu używając skrótów klawiszowych emacsa. Nie kochałem żadnego z nich. Makro do otwierania emacsa i przeskakiwania w to samo miejsce kursora brzmi jednak całkiem fajnie. Może będę musiał spróbować. Przeważnie po prostu kopiuję-wklejam między nimi, kiedy muszę wykonać ciężką manipulację tekstem.
CodexArcanum

0

Spójrz na projekty OpenIDE i Continuous Tests . Pierwszy skupia się na dodaniu obsługi projektów .NET do dowolnego edytora, w tym VIM i Emacs. Drugi to ciągły tester podobny do autotestu Ruby / Pythons Sniffer / Autonose. Może działać jako wtyczka VS lub samodzielna.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.