Czy warto zainwestować czas w naukę korzystania z Emacsa?

Od samego początku: nie chcę rozpętać wojny religijnej.

Używam vi odkąd pamiętam, a kilka razy próbowałem odebrać Emacsa byłem tak zagubiony, że szybko się poddałem. Wiele osób uważa jednak, że Emacs jest bardzo potężny. Jego programowalność jest nieco legendarna. Zajmuję się głównie tworzeniem Solaris + Java i chciałbym zadać proste pytanie: czy moja produktywność wzrośnie, jeśli zainwestuję czas w opanowanie tematu Emacs? Czy funkcjonalność, którą oferuje na Vim, zostanie zwrócona w miarę wzrostu produktywności w rozsądnych ramach czasowych?

powtarzam: nie chcę odpowiedzi "mój redaktor jest lepszy od Twojego". Chcę tylko odpowiedzi Tak lub nie, czy warto zainwestować czas, czy nie. Czy moja produktywność naprawdę wzrośnie?

Author: Peter Mortensen, 2008-09-07

29 answers

Wolę Emacsa od vi, ale w obu mi wygodnie.

Są rzeczy, które można zrobić w Emacsie, które czynią go potężniejszym niż vi, ale nie wszystkie są nawet związane z programowaniem. (Możesz wysyłać e-maile lub czytać wiadomości z VI? Nie, ale kogo to obchodzi?) Jeśli czujesz się komfortowo z lispem (nie jestem), możesz być w stanie pisać dodatki, tryby i takie tam, aby ułatwić sobie życie, ale to prawdopodobnie będzie kolorowanie składni, dopasowywanie nawiasów i takie eye candy.

I przestanę bredzić. Czy Twoja produktywność zwiększy się używając Emacsa? Nie.

Update : Zobacz mój komentarz poniżej. Od kiedy to opublikowałem, mam natknąłem się na sposoby, że korzystanie z Emacsa uczyniło mnie bardziej produktywnym niż korzystanie z vi.

 35
Author: Graeme Perrow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-05 17:02:00

[Disclaimer: osobiście , wolę Vim. Disclaimer disclaimer: Czytaj dalej.]

Vim wyróżnia się w małych: tworząc oddzielne koncepcje ruchu i akcji oraz zapewniając udogodnienia dla złożonych powtórzeń, możesz wykonywać niezwykle wydajne operacje edycji w zaledwie krótkiej sekwencji naciśnięć klawiszy. Możesz łatwo robić rzeczy w Vimie w normalnym trakcie edycji, które wymagałyby od Ciebie przejścia do skryptów w Emacsie. Ponadto większość energii, której używasz, wychodzi z pudełka, więc nawet jeśli masz rozbudowane .vimrc dostosowania, są szanse, że będziesz w stanie produktywnie pracować z dowolną instalacją Vima.

Emacs wyróżnia się w dużej mierze: mapując wszystkie koncepcje interfejsu użytkownika bezpośrednio do podstawowych konstrukcji i pojęć w Elisp, bardzo łatwo jest globalnie wprowadzić funkcje dla określonych rodzajów plików lub okoliczności, dzięki czemu Emacs jest czymś w rodzaju tekstowej i znacznie bardziej programowalnej formy Excela. Zakłada to, że zamierzasz wydać dużo czasu dostosowując swoje środowisko do osobistych potrzeb i preferencji. Oczywiście, Emacs robi wszystko, co w jego mocy, aby ułatwić pozostanie w tym jednym środowisku dla wszystkiego i wszystkiego, co chcesz zrobić.

Ostatecznie żadne z nich nie jest nadrzędne. Oferują różne style i w zależności od twoich skłonności, jeden lub drugi będzie lepiej odpowiadał Twoim osobistym potrzebom i sposobowi myślenia. Zawsze dobrze jest znać oba (plus więcej redaktorów), oczywiście. / Align = "left" / bardziej produktywne w ten czy inny sposób.
 43
Author: Aristotle Pagaltzis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 11:31:45

Vi to nóż kuchenny.

Vim to naprawdę ładny, ostry, wyważony Nóż Szefa Kuchni.

Emacs to miecz świetlny.

Przez większość czasu Moja praca wymaga od mnie siekania warzyw. Czasami muszę zmierzyć się z całą armią robotów.

Używam Emacsa od 20 lat. Piszę teraz w Emacsie z widżetem o nazwie "to wszystko tekst", który pozwala mi wysysać tekst z pól tekstowych w Firefoksie. Mogę jechać bardzo szybko w Emacsie. Jestem znacznie mniej produktywne bez niego.

Jest to wysoce dyskusyjne, ale myślę również, że nauka Emacsa może nauczyć cię zaskakującej ilości programowania.

 29
Author: jfm3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-28 17:46:11

W zależności od tego, jak kodujesz, możesz zobaczyć wzrost produktywności. W tle, jestem również długoletnim użytkownikiem vim, ale nauczyłem emacs około 2 lata temu, a teraz używać ich zamiennie.

To, co doprowadziło mnie do tego, że uczyłem się Emacsa, to jego przydatna zdolność do otwierania dużej liczby plików jednocześnie i łatwego przełączania się między nimi. Byłem w trakcie wprowadzania funkcji, która dodała i dotknęła dużą liczbę klas. (To był C++, więc były zazwyczaj dwa pliki na klasę.) Ponieważ wciąż wzmacniałem interfejs, zazwyczaj byłem w trakcie aktualizacji jednego pliku, kiedy zdałem sobie sprawę, że muszę zmienić inny.

W gvim najłatwiej było otworzyć nowe okno dla każdego pliku, które zaczynało być nieporęczne. W Emacsie otwieranie nowego pliku w tym samym oknie było proste(Ctrl-x, Ctrl-f). Gdy Emacs otworzy plik, bardzo łatwo jest przełączać się między otwartymi buforami (Ctrl-x, Ctrl-b).

Idąc o krok dalej, pojedyncza sesja Emacsa może otworzyć wiele okien, więc oprócz podziału okna w pionie, mogłem zdecydować, bez przerywania pracy nad plikiem, aby otworzyć kolejne obok niego, pozwalając mi efektywnie pracować obok siebie, zachowując przy tym domyślną szerokość 80 znaków.

Są jeszcze rzeczy, które są łatwiejsze w Vimie (np. tryb wyboru bloków, proste nagrywanie makr, tryb różnicowania), i rzeczy, które są łatwiejsze w Emacsie (wyrównanie linii, Zarządzanie plikami / buforami, zarządzanie oknami / ekranami). Dlatego znajduję się na przemian między tymi dwoma (a czasami używam obu jednocześnie), w zależności od zadania edycji, które przewiduję.

Jeśli nadal nie jesteś pewien, sugeruję wypróbowanie go. Uruchom samouczek Emacsa, a następnie użyj go do pisania kodu na rano lub dzień, opierając się mocno na pomocy. Jeśli nadal nie podoba Ci się to, co widzisz, zostań z Vimem. Niezależnie od tego, co redaktor przyniesie do stołu, Twój znajomość i znajomość narzędzia będzie zdecydowanie najważniejszym czynnikiem w twojej produktywności.

 27
Author: shmuelp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-07 02:43:24

Nie chcę świętej wojny, ale proszę odpowiedzieć na bardzo subiektywne pytanie z odpowiedzią tak/nie.

Tak, możesz zobaczyć wzrost wydajności ze względu na potężną funkcjonalność.

Nie, Nie zobaczysz wzrostu produktywności, ponieważ wzorce i metafory używane w Emacsie mogą nie pasować do twojego mózgu.

 17
Author: Alan Storm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 21:08:23

Krótka odpowiedź na twoje pytanie brzmi: "tak". Więcej szczegółów poniżej.

Używałem vi prawie wyłącznie od około 1980 do 1991. Nie używałem vi tylko wtedy, gdy miałem do czynienia z minimalną instalacją Uniksa, który był zbyt mały, aby zawierał vi, więc musiałem wrócić do ed, który jest minimalnym podzbiorem funkcji edycji, na którym zbudowano oryginalny vi.

Od około 1985 roku inni programiści, w których pracowałem, nieustannie śpiewali pochwały Emacsa. Ale za każdym razem, gdy próbowałem się tego nauczyć, Nie zajeżdżałem daleko. Spędziłem godzinę przeglądając Emacs turorial (C-h t) i pod koniec wszystko, co wiem, to jak wstawiać i modyfikować tekst i poruszać się po ekranie. Mogłem zrobić o wiele więcej z vi niż tego, czego nauczyłem się w tej godzinie z emacsem, że nie mogłem dokonać zmiany. Trzy miesiące później znajdowałem czas na spędzenie kolejnej godziny i kończyłem przechodząc przez ten sam materiał. Emacs ma krzywą uczenia się przez duże "L". Dopiero Robiłem kontrakt, w którym wszyscy inni używali Emacsa, który ostatecznie uznałem, że muszę poświęcić więcej niż godzinę na jego naukę. Po spędzeniu nieco ponad dnia, nie robiąc nic poza samouczkiem i dołączoną dokumentacją, w końcu doszedłem do punktu, w którym mogłem robić rzeczy z emacsem, których nie mogłem z vi. od tego czasu nigdy nie chciałem wracać. Nadal mogę pisać polecenia vi we śnie, ale mogę zrobić o wiele więcej z emacsem.

Zrozumieć, że Porównuję Emacsa i vi, Nie Vima. Nigdy nie nauczyłem się rozszerzeń, które vim dodał do vi i prawdopodobnie wiele z nich to funkcje skopiowane z Emacsa. Jeśli tak, i jeśli jesteś już biegły z vim, emacs może nie mieć tyle zalet dla Ciebie.

Wśród rzeczy, od których zależy mi cały czas w Emacsie są:

  1. Kiedy używasz Emacsa, wszystko jest traktowane jako tekst. Oznacza to, że można manipulować dowolnymi danymi w dowolnym buforze za pomocą prawie tych samych poleceń. A w przypadkach, gdy bufor jest w trybie, w którym niektóre standardowe polecenia są niedostępne, można skopiować tekst do innego bufora działającego w trybie podstawowym i użyć tam standardowych poleceń.

  2. Emacs dostarcza środowisko multi-"window", które można wyświetlać na terminalu z komórką znakową. W czasach przed bitmapową grafiką i prawdziwymi oknami, emacs został napisany, aby symulować zachowanie podobne do okna, używając tylko znaków ascii i pozycjonowania kursora. Prawdopodobnie jesteś myślenie: "to starożytna historia. Dlaczego ktoś miałby się tym dzisiaj przejmować?"Wciąż korzystam z tej możliwości każdego dnia. Korzystam z firmy webhostingowej, która umożliwia mi dostęp SSH. Więc mogę zalogować się do hosta Linuksa przez Internet i uruchomić polecenia powłoki. Chociaż jest to dość potężne, o wiele bardziej wydajne jest dzielenie emulatora terminala na" windows "za pomocą Emacsa, uruchamianie powłok w kilku z tych "windows", edycja plików w innych oknach oraz przeglądanie i edycja katalogów w jeszcze innych "windows".

    Właściwie, kiedy powiedziałem "okno" w poprzednim akapicie, miałem na myśli "bufor". Emulacja komórek postaci Emacsa w systemie windows jest sposobem na podział ekranu. Bufor emacs jest powiązany z zawartością (plik, powłoka bash, katalog, dowolny tekst nie powiązany z plikiem, itp.), które mogą być aktualnie wyświetlane lub nie. Aby zobaczyć, co znajduje się w buforze, wybierz okno i powiedz mu, jaki bufor chcesz zobaczyć. Więc możesz pracować nad czymś więcej rzeczy niż masz miejsce na ekranie do wyświetlenia. Jest to mniej więcej analogiczne do tego, co robisz w nowoczesnym graficznym interfejsie graficznym, gdy ikonifikujesz / de-ikonifikujesz okno.

  3. Już wspomniałem o tym, że można uruchomić powłokę w buforze Emacsa. Możesz mieć tyle buforów uruchomionych powłok, ile chcesz. Można kopiować i wklejać tekst w tę i z powrotem między buforem powłoki a plikiem tekstowym lub porównywać fragment tekstu między buforem powłoki a plikiem tekstowym przy użyciu dokładnego te same sekwencje klawiszy, których używasz do kopiowania tekstu lub porównywania tekstu między dwoma różnymi plikami tekstowymi. W rzeczywistości dotyczy to większości typów buforów, a nie tylko buforów powłoki i buforów powiązanych z plikami.

  4. Gdy używasz polecenia Emacsa do otwierania pliku, ale to, co wybrałeś, jest w rzeczywistości katalogiem, bufor działa w trybie dired (edytor katalogów). W tym trybie pojedyncze naciśnięcie klawisza otworzy dowolny obiekt wskazujący kursor, czy to plik, czy podkatalog. A bufor w trybie dired jest menedżerem plików-terminalem zorientowanym na komórki znaków, analogicznym do Findera w Eksploratorze Mac lub Windows.

  5. Jedną z funkcji Emacsa, której używam niemal stale, jest "compare-windows". Zdecydowanie wolę to od wiersza poleceń "diff" lub narzędzi do porównywania GUI, takich jak to, co jest wbudowane w Eclipse. Diff lub Eclipse porównują całe pliki i pokazują, które Linie się różnią. Ale co się dzieje, gdy masz dwie różne linie, które wyglądają bardzo podobnie? Rozważ po:

    Jaka jest różnica między tą linią a drugą?

    Jaka jest różnica między tą linią a drugą?

    Jak długo zajmie dostrzeżenie różnicy? (Podpowiedź: apostrofy ASCII i Unicode wyglądają podobnie.)

    W przeciwieństwie do Diffa i Eclipse, które po prostu pokazują linie, które się różnią, funkcja "compare-windows" Emacsa jest interaktywna. Umieść kursor w każdym z dwóch okien obok siebie w punkcie, w którym zawartość okna jest to samo. Uruchom "compare-windows", a kursor w każdym oknie przeniesie się do pierwszego znaku, który się różni. Przesuń kursor w jednym z okien do punktu, w którym jest taki sam jak w drugim oknie, i uruchom ponownie "porównaj okna", aby znaleźć następną różnicę. Ułatwia to porównywanie podtypów plików.

    Kolejną rzeczą, do której regularnie używam "compare-windows", jest porównywanie sum kontrolnych. Wiele projektów programistycznych rozpowszechnia tarball aplikacji na stronie, która zawiera również MD5 hash of the tarball. Jak porównać Skrót MD5 na stronie dystrybucji z skrótem MD5 obliczonym z pobranego pliku. Emacs czyni to banalnym.

    Najpierw skopiuj hash MD5 ze strony do nowego bufora Emacsa. Następnie, po pobraniu .smoła.plik gz, run:

    Md5sum pobierz plik.smoła.gz

    W buforze powłoki. Z tymi dwoma buforami wyświetlanymi obok siebie w oknach Emacsa, Umieść kursor w każdym oknie na początku sumy kontrolnej i Uruchom "compare-windows". Jeśli są takie same, kursor w każdym oknie zostanie umieszczony na końcu każdej sumy kontrolnej.

  6. W poprzednim punkcie podałem przykład uruchomienia "compare-windows" na liniach:

    Jaka jest różnica między tą linią a drugą?

    Jaka jest różnica między tą linią a drugą?

    "compare-windows" pozostawi kursor umieszczony na apostrofie w każdej linii. Więc teraz wiesz, które znaki różnią się. Ale jakie to postacie? Wpisz dwa naciśnięcia klawisza CTRL-x=, a emacs wyświetli znak, jego wartość ascii w ósemkowym, dziesiętnym i szesnastkowym, przesunięcie znaku Od początku pliku i przesunięcie znaku Od początku linii. Ponieważ ASCII jest kodowaniem 7-bitowym, wszystkie znaki ASCII mają wyłączony bit wysokiego rzędu. Gdy zobaczysz, że wartość pierwszego apostrofu wynosi 0x27, a drugiego 0x92, jest oczywiste, że pierwszy jest w ASCII zestaw znaków, a drugi nie.

  7. Emacs był jednym z pierwszych Idów, być może pierwszym. Posiada tryby dla poszczególnych języków. Uważam je za przydatne do nakładania spójnych wcięć na mój kod, aby był bardziej czytelny. Istnieje również wbudowana funkcjonalność do kompilowania i debugowania kodu. Nie używam funkcji kompilacji, ponieważ kiedy pisałem dla skompilowanego języka, takiego jak C, byłem przyzwyczajony do robienia tego w wierszu polecenia powłoki. Debugowanie funkcjonalność była bardzo miła dla C i C++. Zintegrował gdb z edytorem w taki sposób, że masz prawie taką samą funkcjonalność jak możliwości debugowania teraz w Eclipse, ale nie marnujesz nieruchomości ekranu tak, jak robią to nowoczesne IDE oparte na GUI. Teoretycznie integracja debuggera powinna być łatwa do zastosowania w praktycznie każdym innym języku, ale nie sprawdzałem, z jakimi innymi językami działa obecnie.

  8. Emacs pozwala na tworzenie makr przez mówienie, kiedy zacząć pamiętać, co piszesz, a kiedy przestać. Jest to niezwykle skuteczne w przypadku zadań, które często wykonujesz.

  9. Emacs jest nieskończenie rozszerzalny, jeśli znasz Lisp. Ale mimo, że nigdy nie nauczyłem się Emacs Lispu, nadal uważam Emacsa za jedno z najpotężniejszych narzędzi, jakich kiedykolwiek używałem.

  10. Breloki Emacs. Jako pierwszy przyznam, że wiązania do kluczy Emacsa są do bani. Ale jest o wiele potężniejsza niż cokolwiek innego, z czego korzystałem, że jestem skłonny aby znosić wiązania kluczy.

  11. W humorystyczny sposĂłb, przed laty autor Emacsa Richard Stallman (rĂłwnieĹź pomysĹ'odawca GPL, zaĹ 'oĺźyciel projektu GNU i zaĹ' oĺźyciel FSF) lampionowaĺ 'tych, ktĂłrzy traktujÄ ... vi kontra emacs jako Ĺ" wiÄ ™ tÄ ... wojnÄ™. Wymyślił postać "świętego Ignacego" z Kościoła w Emacs. Stallman skomentował w ten sposób: "czasami ludzie pytają mnie, czy grzechem w Kościele Emacsa jest używanie innego edytora tekstu vi. Cóż, to prawda, że VI VI jest edytorem bestia, ale używanie darmowej wersji vi to nie grzech, to pokuta."(Zobacz http://stallman.org/saint.html . jest też jego urocze zdjęcie, ale ponieważ jestem nowy w StackOverflow, nie pozwala mi opublikować więcej niż jeden adres URL. Więc idź do tej samej domeny, ale pobierz plik saintignucius.jpg)

 13
Author: MBR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-03 05:01:16

Używałem Vima przez 10 lat, co doprowadziło do zagłębiania się w Emacsa 2 lata temu. Mam dość świeże wspomnienia o tym, jak moja krzywa wydajności zmieniała się w czasie.

Moje punkty są warunkowe, YMMV w zależności od twoich mocnych stron i doświadczenia.

Jeśli używałeś Uniksa i linii poleceń na tyle długo, że znasz C-A, C-e, C-n, C-p, C-k, C-y, itd., jak działają one w powłoce, przejście do używania tych samych wiązań (the domyślnie) w Emacs. Niedawno odkryłem, że XCode używa tych wiązań, jak również.

Jeśli czujesz się komfortowo z zawsze działającym edytorem, obsługującym bufory (jak w przypadku kart przeglądarki) i tym samym żyjącym w aplikacji (jak w przypadku aplikacji Web2.0 w przeglądarce), Emacs prawdopodobnie pokaże natychmiastowe ulepszenia wydajności.

Jeśli na ogół pracujesz w projektach z wieloma powiązanymi plikami, ta trwałość przynosi pewne dodatkowe korzyści w utrzymywaniu kontekstu do tego bufora. Każdy bufor jest kontekstowy w otwartym pliku, co pozwala na wygodne korzystanie z różnych narzędzi zwiększających produktywność dla Twojego projektu(takich jak grep-find, eshell, run-python i slime). To w połączeniu z uzupełnianiem tekstu, yasnippets, itp zaczynają wyglądać ułamek jak IDE, chociaż ad-hoc i mocno zindywidualizowane przez konfigurację. Jest to poza bardziej cywilizowanymi usługami Emacs IDE, takimi jak EBC.

Moja produktywność początkowo uderzyła, gdy wpisywałem" jjjkkk " ciągle Esc-Esc-Esc-Esc przez pierwszy tydzień. W następnym tygodniu ostrożnie zacząłem używać odpowiednich klawiszy nawigacyjnych. Potem odkryłem plik konfiguracyjny... Szczerze mówiąc, gdybym miał Emacs Starter Kit od początku, powiedziałbym, że moja produktywność powoli wracała do parzystości w ciągu 3-4 tygodnia, ale poszedłem do króliczej dziury w pliku konfiguracyjnym. Mój współpracownik właśnie przesiadł się z Vima na Emacsa i właśnie chwycił Starter Kit i jest w drodze. Pierwszy tydzień i on wydaje się wygodne i ciesząc się wszystkimi niespodziankowymi korzyściami (to uczucie będzie prawdopodobnie trwać dekadę).

Wreszcie, jeśli popełnisz błędy, natychmiast zyskasz Produktywność (i pewność siebie) z okrągłego pierścienia zabijania/Jankesa i pierścienia cofania. Jestem również osobiście fanem undos specyficznych dla regionu.

Moja krótka odpowiedź brzmi: tak, warto poświęcić 3-4 tygodnie zmniejszającej się produktywności, aby nauczyć się Emacsa. Nawet jeśli zdecydujesz, że wolisz usprawnione narzędzie unix combo niż Emacs dla rozwój będziesz czerpać z niego wykształcenie szeroko stosowane poza edytorem.

 12
Author: jjames,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-14 23:19:30

Dokumentacja Emacsa to Las. Przeszedłem z Emacsa do Vima, kiedy zdałem sobie sprawę z tego, jak zorganizowana jest dokumentacja Vima i jak wiele funkcji jest akordowalnych. Nie wiem, co leży na drodze eksperta Emacsa, ale ostrzegam, że nauka robienia w nim czegoś pożytecznego zajmuje dużo czasu i nie uczyni cię lepszym w nethacku. Trzymaj się Vima.

Textmate jest lepszym Emacsem dla komputerów Mac, ale to nie pomoże Ci z Solarisem. Eclipse jest fajne i ma dużo wtyczek.

 10
Author: Nick Retallack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-03 22:53:34

Emacs zapewni wzrost produktywności, jeśli chcesz się nauczyć i dostosować go do swoich potrzeb. Większość ludzi nie. Aby zwiększyć swoją produktywność, musisz użyć tego narzędzia do więcej niż prostej edycji - większość ludzi nigdy nie postępuje po prostej edycji.

Oto szybki test: czy dostosowałeś swojego menedżera okien, aby twoje środowisko było bardziej wydajne (dostosowane do Twoich potrzeb)? Jeśli 'nie' to prawdopodobnie nie uzyskasz zwrotu z inwestycji ucząc się Emacsa.

To powiedziane, jeśli tworzysz Javę, Eclipse jest standardową odpowiedzią, więc twoje pytanie jest dość dyskusyjne.

 8
Author: Trey Jackson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-12 16:47:26

Byłem bardzo zadowolony z mojego Vima, ale gdy usłyszałem o org-mode , zacząłem uczyć się Emacsa. tryb org może być jednym z mocnych powodów do nauki Emacsa.

 7
Author: ticktock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 20:47:09

Kocham Emacsa i używam go na co dzień.

To powiedziawszy, nie sÄ ... dzÄ™, Ĺźe koszt nauki nie bÄ ™ dzie odzyskiwany przez wzrost produktywnoĺ " ci w dalszej drodze.

Jeśli programujesz Javę, potrzebujesz dobrego IDE. Emacs idzie uczciwie w kierunku bycia jednym, ale spójrzmy prawdzie w oczy, IDEA et al beat it hands down. (emacs prawdopodobnie zainspirował wiele z tych Idów, ale to już inna historia).

 5
Author: gerikson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-07 17:56:37

Dwa razy próbowałem nauczyć się Emacsa. Nie pasuje do mojego mózgu, więc go nie używam.

Emacs (lub vim) nie jest znacząco lepszy niż vim (lub Emacs). Oba mają wiele opcji do dodania do nich, które pozwalają im robić niesamowite rzeczy. Nie mam wątpliwości, że wszystko, co można zrobić w Emacsie, można również zrobić w Vimie, tylko nie standardowo.

Spróbuj Emacs. Zobacz, czy pasuje lepiej. To sytuacja bez strat.

 4
Author: Andy Lester,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 03:24:21

Chcę zajrzeć dalej do Emacsa, ale po prostu nie mogę go używać przez długi czas; boli mnie to ręce. Czy robię coś strasznego nie tak?

 3
Author: Bernard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-07 02:35:34

Vim i emacs, są najbardziej zdolnymi edytorami i są już od dłuższego czasu. Jeśli znasz jeden naprawdę dobrze, wątpię, że zyskasz tyle w procesie...

Jednak zawsze dobrym pomysłem jest sprawdzenie, jakie wtyczki są dostępne od kilka nowych wtyczek może zdziałać cuda dla produktywności.

/Johan

 3
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-20 21:04:31

Nie (i użyłem obu).

 3
Author: Mark Nold,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 21:03:37

Podobnie jak nie szukanie wojny religijnej (ale śmiało, jeśli uważasz, że musisz), dlaczego uważasz, że jedyną opcją vi jest emacs? Czy chodzi o system operacyjny, na którym rozwijasz, czy tylko o opcje, które zbadałeś?

Środowisko programistyczne Javy cieszy się obecnie najlepszymi Idami (zarówno darmowymi, jak i płatnymi), jeśli nie najlepszymi, jeśli chodzi o edycję kodu i obsługę refaktoryzacji.IntelliJ IDEA ma nawet wtyczkę vi, która może pomóc Ci poczuć się bardziej jak w domu, na przykład (Nie wiem czy coś podobnego jest dostępne dla Eclipse). Podczas gdy zmiana narzędzi oznacza krzywą uczenia się, czas spędzony na tym może być tego warty, jeśli skok jest wystarczająco duży.

 2
Author: Andrei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-07 23:13:32

Jak szybko piszesz? Jeśli polujesz i dziobiesz, emacs nie jest dla Ciebie. Jeśli twój szybki tho, to może pomóc nie trzeba chwytać myszy cały czas.

 2
Author: dicroce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 03:13:03

Ogólnie rzecz biorąc, emacs jest mocniejszy niż vi. w Emacsie można zrobić o wiele więcej rzeczy.

 2
Author: Jake Badlands,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-05 13:17:41

Twoja produktywność wzrośnie, jeśli zdecydujesz się poświęcić czas na zaprogramowanie edytora tekstu. Z dwóch edytorów emacs prezentuje lepszy framework lub stałe dostosowywanie. Jeśli nie programujesz edytora tekstu, po prostu pozostań przy tym, co jest wygodne.

 1
Author: Jay Stramel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-07 03:22:32

Dobrym powodem do nauki Emacsa jest fakt, że inne programy również używają skrótów klawiszowych Emacsa. Na przykład możesz użyć skrótów klawiszowych Emacsa w wierszu polecenia bash lub czegokolwiek innego używając GNU readline. Dobrze jest nauczyć się podstawowych ruchów i usuwania słów / linii oraz cofania/ponawiania akordów w Emacsie, dzięki czemu można ich używać w innych programach. Twoja produktywność wzrośnie w tych innych narzędziach, nawet jeśli nigdy więcej nie używasz Emacsa.

Znam Vima i Emacsa, a vim lepiej pasuje do mojego mózgu i moich nawyków. Ale inni ludzie twierdzą to samo o Emacs. Nigdy nie wiadomo na własne oczy, chyba że spróbujesz. Nie trzeba tyle czasu, aby nauczyć się Emacsa na tyle dobrze, aby zobaczyć, czy ci się spodoba.

 1
Author: Brian Carper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 03:00:09
Czy moja produktywność naprawdę wzrośnie?
Przez pierwsze kilka dni/tygodni, absolutnie nie.

Po tym, jak przestaniesz czytać samouczek za każdym razem, gdy będziesz chciał coś edytować-jasne . .

Emacs jest bardziej "wydajny" niż vim, jego silnik skryptowy jest znacznie bardziej elastyczny, a wokół Emacsa jest znacznie więcej skryptów, trybów i podobnych funkcji.

To powiedziawszy, jest odwrotnie.. Jeśli poświęciłeś tyle samo czasu na ulepszanie swojego znajomość Vima, mógłbyś być równie produktywny..

Może nie w ten sam sposób produktywny - powiedziałbym, że Vim jest szybszy do edycji plików, emacs jest lepszy we wszystkim innym (ponownie, osobiście powiedziałbym, że rzeczy takie jak flymake-mode, wiązania VCS są takie szybsze w użyciu niż odpowiednik vim)

 1
Author: dbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-10 18:44:37

Zgadzam się z Alanem Stormem: "ponieważ wzory i metafory używane w Emacsie mogą nie pasować do twojego mózgu"

Jest to bardzo ważny czynnik. Różne mózgi inaczej dostosowują się do różnych interfejsów.

Niektóre z głównych - i łatwo dostępnych - funkcji, za które naprawdę kocham Emacsa i zaliczam je do ulepszaczy produktywności:
1. funkcja "yank-pop" - każdy cut/copy jest zapisywany w stosie, więc możesz później wybrać, który wkleić (Nie wiem, czy vi / Vim ma to, ale większość Java IDEs don ' t)
2. mapowanie nawigacyjne klawisza Ctrl-pozwala to nawigować po Pliku bez przesuwania rąk do używania klawiszy strzałek. (Wiązanie kluczy w innych edytorach pomaga oczywiście)
3. dostępne na niemal każdej platformie (oczywiście również vi / Vim) - czy to GUI-czy tekstowej (Java IDE są dostępne na większości platform, ale tylko w trybie GUI, i są znacznie większe i muszą być zainstalowane osobno, podczas gdy Emacs jest ogólnie bardziej dostępny - BSD / * nix / Linux / Systemy Mac
4. Wolę, aby mój edytor trzymał się z dala, dopóki go nie potrzebuję - spartański wyświetlacz Emacsa zmusza mnie do myślenia, zanim napiszę.
5. Podstawowe klawisze nawigacyjne w Emacsie są uniwersalnie dostępne - na moim Mac OS mogę używać tych klawiszy W terminalach, mac mail itp.

Ostatecznie, jeśli filozofia Emacsa przemawia do ciebie, włożysz dodatkowy wysiłek, aby ją poznać. I to cię wynagrodzi.

 1
Author: alan-p,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 20:57:59

Ponieważ vi / Vim i Emacs są dość blisko pod względem tego, co mogą, a czego nie mogą zrobić, produktywność z tymi dwoma edytorami wynika z doświadczenia w jej używaniu.

Moim zdaniem, będąc programistą nie zajmie ci dużo czasu, aby uzyskać ogólne pojęcie o Emacsie, gdy zaczniesz go używać. Inni mogą powiedzieć tylko tyle, że musisz wypróbować to dla siebie, aby to wiedzieć.

Jeśli chodzi o mnie, używam obu. To jak zabranie więcej niż jednej broni na wojnę, użycie właściwej w odpowiednich okolicznościach. ;)

 1
Author: Sujoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-02 20:59:17

Lubię Emacsa, możesz go rozbudowywać według swoich potrzeb - w moich oczach każdy system, który możesz rozbudować samodzielnie, jest godny nagrody.

 1
Author: Hartmut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-04 00:34:56

Zastrzeżenie: jestem ignorantem. Jestem użytkownikiem Emacsa od około 4 lat, a użytkownikiem Vima od około 6 miesięcy, może bardziej jak 15, jeśli policzysz wszystkie razy próbowałem się go nauczyć i nienawidził go. (Rozróżnienie trybu pisania vs ruchu mnie zabija. Za każdym razem. Więc jeśli to cię nie zabije, moja opinia może być zupełnie bezwartościowa.) To powiedziawszy, myślę, że moja opinia jest rzeczywiście ciekawie różni się od 26 innych, które widziałem tutaj, więc będę głos to. :

Moja opinia:

  • Emacs jest lepszy do pisania, szczególnie na dużą skalę "piszę nową funkcję i minie trochę czasu, zanim spróbuję sprawdzić, czy działa".
  • Vim jest lepszy do edycji, szczególnie szybkich edycji.

Kiedy muszę zrozumieć i włamać się do 8 plików jednocześnie, właściwości Emacsa jako menedżera okien z wieloma buforami (bufory mają zgodność 1.2:1 z plikami, często są takie same rzecz, ale niekoniecznie) regexp-search (i replace) są niesamowite.

Jeśli nie podoba mi się jakaś mała rzecz z powodu git diff w powłoce (nie używam funkcji VC Emacsa bardzo często, choć kiedy je kocham) otwieram ją Vimem i wydostaję się szybciej niż mogłem trafić Alt-TAB.

Fakt, że polecenia edycyjne Emacsa są łatwiej dostępne podczas pisania, sprawia, że pisanie jest znacznie szybsze niż w Vimie. Ctrl+a jest dużo szybciej niż ESC ^ i, a Ty nie posiadaj funkcji poznawczych "do I want a lub i lub o lub O..."o którym, Boże, nienawidzę myśleć. I to samo dla wszystkich innych komend ruchu.

Piszę szybciej, dużo szybciej, w Emacsie. Oznacza to takie rzeczy jak tryb Org (którego używam do wszystkiego: listy TODO, śledzenie błędów, notatki, długie e-maile, dokumentacja...) mają większy sens (jak dla mnie) w Emacsie niż w Vimie.

/ Align = "left" / To całkowicie nadrabia dla złamanych wyrażeń regularnych Emacsa: możesz używać pełnej mocy Emacsa wszędzie , w tym w wielokrotnym zastępowaniu regexp-replacement. Oraz w fragmentach tekstu .
 1
Author: quodlibetor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-10 17:36:44

Jeśli martwisz się o o zdrowie twoich rąk Wybierz Vim.

W przeszłości cierpiałem na atak RSI i odkryłem, że jednym z głównych sprawców było "chording", czyli trzymanie wielu klawiszy w tym samym czasie. Emacs intensywnie używa akordów, podczas gdy VIM używa jednoliterowych poleceń połączonych łańcuchowo w szybkiej kolejności. To znacznie mniej obciąża twoje ręce, ponieważ mięśnie nie muszą się skręcać i konturować, aby wykonywać polecenia w edytorze. Uraz spowodowany RSI może zrujnować twoje produktywność, więc w swoich obliczeniach należy uwzględnić to.

 1
Author: Jack Kinsella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 16:20:33

Naprawdę nie widzę powodu do zamiany. Używam vi przez długi czas i jestem z nim całkiem komfortowy; około co pół roku instalowałem Emacsa, aby dać mu szansę, a następnie szybko po prostu przełączyć się z powrotem. Tak, były rzeczy, które bardzo wolałem w vi, ale głównym powodem, dla którego nigdy nie tknąłem tego, jest to, że inwestycja czasu, aby w pełni nauczyć się innego edytora, gdy już wiem, że niezwykle zdolny nie jest tego wart.
Przypomina mi się to dość przestarzałe badanie.

Moim zdaniem, SLIME jest jedynym powodem, aby przełączyć się na Emacsa, jeśli jesteś już biegły w vi.

 0
Author: user20805,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 03:31:13

Nie

Używam Emacsa od lat, jestem konwerterem z Vima i uwielbiam go na bity.

Ale jakakolwiek poprawa produktywności z posiadania lepszego, programowalnego edytora zostanie całkowicie zniszczona przez ogromną ilość pieprzenia w głowie, której potrzeba, aby opanować Emacsa. Został zaprojektowany jako edytor konsoli, a jego idea interfejsu nie jest twoja.

I nawet jeśli masz go całkowicie, twoja dodatkowa produktywność będzie głównie wyrażona w dodatkowym Lispie emacs, który możesz pisz.

Kogo to obchodzi? To świetna zabawa, a lisp to psy! Jeśli chcesz "załatwić sprawy", zapomnij o programowaniu. Zawsze możesz zatrudnić programistów do' robienia ''rzeczy'.

Jedyną okolicznością, w której zalecałbym naukę Emacsa ze względu na produktywność jest to, że jesteś programistą lisp/scheme / clojure. Tworzy to tak dobre środowisko Lispu, że kilka sekund, które cię uratuje za każdym razem, gdy będziesz chciał coś zrobić, szybko da realny zysk. Oraz elisp (co jest w stosunku do Lispu, ponieważ makra Excela są w stosunku do ALGOLA) wydaje się znacznie mniej obce, jeśli już używasz prawdziwego Lispu.

Jeśli spróbujesz, użyj go na wirtualnej konsoli, gdzie wydaje się bardziej rozsądnym sposobem na ułożenie edytora. Tylko wtedy, gdy ma to sens, spróbuj użyć go pod systemem okiennym, który będzie z nim walczyć.

 0
Author: John Lawrence Aspden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-10 10:23:45

We wcześniejszej odpowiedzi Arystoteles Pagaltzis napisał: "Vim wyróżnia się w małych ... Możesz łatwo robić rzeczy w Vimie w normalnym trakcie edycji, które wymagałyby od Ciebie przejścia do skryptów w Emacsie."

Przełączyłem się na Emacsa po ponad dekadzie używania wyłącznie vi i początkowo zgodziłbym się z twierdzeniem: "możesz łatwo robić rzeczy w Vimie w normalnym toku edycji, które wymagałyby od Ciebie przejścia do skryptów w Emacsie."Ale potem odkryłem, że używając Możliwości makr Emacsa i duża liczba powtórzeń, mogłem łatwo sprawić, że Emacs zrobi prawie wszystko, co ułatwił vi i wiele więcej.

Funkcja makra Emacsa obejmuje trzy polecenia:

C-x (       start remembering keystrokes
C-x )       stop remembering keystrokes
C-x e       replay the remembered keystrokes

Na przykład w vi, jeśli chciałem znaleźć wszystkie tagi <a> w pliku HTML i dodać target atrybut, mogę zrobić coś takiego:

:g/^<a/s/>/ target="_blank">/

Ten przykład nie jest doskonały, ponieważ zakłada, że wszystkie znaczniki {4]} są same w sobie. Ale to dobrze. wystarczy, aby zilustrować, w jaki sposób można wykonać równoważne zadanie w dwóch różnych edytorach.

Aby łatwo osiągnąć ten sam efekt w Emacsie, oto co robię:

1.  C-x (
2.  M-C-s <a\>
3.  C-b
4.  C-s >
5.  C-b
6.   target="_blank"
7.  C-x )
8.  C-u 10000 C-x e

Oto opis tego, co robi każde naciśnięcie klawisza powyżej:

1.  start remembering keystrokes
2.  regex search for <a.  Note that the "\>" after the "a" is not HTML.  It's emacs regex notation for end-of-word.
3.  back up one character - as a side-effect this gets you out of search mode
4.  search for the next ">"
5.  back up over the ">"
6.  enter space as an attribute-delimiter followed by the target="_blank" attribute
7.  stop remembering keystrokes
8.  replay the remembered keystrokes 10,000 times or until the search fails
Wygląda to na skomplikowane, ale w rzeczywistości jest bardzo łatwe do napisania. I możesz użyć tego podejścia, aby zrobić wiele rzeczy, których vi nie może zrobić, bez przechodzenia do kodu Lispa.
 0
Author: MBR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-27 02:19:56