Bez wdawania się w religijny spór o to, dlaczego jedno jest lepsze od drugiego, jakie są praktyczne różnice między Emacsem a Vimem? Chcę się nauczyć jednego lub drugiego, ale zdaję sobie sprawę, że krzywa uczenia się dla każdego jest wysoka i nie mogę się zdecydować. Nigdy nie korzystałem z edytora tego typu (zawsze korzystałem z IDE), więc wszystko, co pomaga nowicjuszowi, jest zaletą.
Zanim rozpocznie się wojna z płomieniem: nie pytam, co jest lepsze, pytam o różnice między nimi. Chciałbym obiektywne porównanie.
,salespitch
mówi #emacs<fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.
PAGER=cat man
człowiek wyświetli tekst bezpośrednio na ekranie.i, esc, wq
.Odpowiedzi:
(poniższy tekst jest moim zdaniem, nie powinien być traktowany jako fakt lub zniewaga)
W Emacsie oczekuje się, że będzie on otwarty 24 godziny na dobę, przez 7 dni w tygodniu, i będziesz mógł żyć w programie, stamtąd możesz zrobić prawie wszystko, co możesz zrobić. Piszesz własne rozszerzenia, używasz ich do robienia notatek, organizacji, gier, programowania, dostępu do powłoki, dostępu do plików, słuchania muzyki, przeglądania stron internetowych. Zajmie Ci to tygodnie i tygodnie, zanim będziesz z tego zadowolony, a następnie będziesz się uczyć nowych rzeczy przez cały czas. Będziesz zirytowany, gdy nie będziesz mieć do niego dostępu i będziesz ciągle zmieniać konfigurację. Nie będziesz w stanie łatwo używać wersji emacs innych ludzi i nie będzie po prostu zainstalowany. Używa Lisp, co jest świetne. Możesz zrobić z tego wszystko, co chcesz. (cokolwiek)
Dzięki Vimowi prawie zawsze jest on wstępnie zainstalowany. To jest szybkie. Po otwarciu pliku dokonaj szybkiej edycji, a następnie zamknij. Możesz pracować z podstawową konfiguracją, jeśli jesteś na czyimś komputerze. Nie jest tak edytowalny, ale wciąż jest znacznie lepszy niż większość edytorów tekstu. Rozpoznaje, że przez większość czasu, kiedy czytasz / edytujesz, nie pisze i przyspiesza tę część. Nie cierpisz na emacs pinkie . To nie jest takie irytujące. Łatwiej się uczyć.
Mimo że używam Emacsa przez cały dzień (i uwielbiam to), chyba że zamierzasz spędzać dużo czasu w wybranym przez ciebie programie, wybrałbym vim
źródło
vi
zamiast do niegovim
alias.ssh
wchodzę na inne maszyny. Właśnie dlatego nauczyłem się go najpierw - to, a ponieważ moi przyjaciele znali VIM i mogli mi pomóc. (Nie lekceważ też wsparcia przyjaciół!)Vim nie jest powłoką. I nie komunikuje się dobrze z podprocesami. Jest to prawie zgodne z projektem, podczas gdy w Emacsie elementy te są uwzględnione w projekcie. Oznacza to, że niektóre rzeczy, takie jak osadzanie debuggera lub interpretera (dając rodzaj IDE), są trudne w Vimie.
Ponadto skróty Emacsa są dostępne głównie za pomocą modyfikatorów, i oczywiście interfejs Vima jest znany z modalności, dając dostęp do absurdalnej liczby bezpośrednich klawiszy do manipulacji.
Emacs był jedynym edytorem tych dwóch programów, który był programowalny, i chociaż Vim ma wiele dziwnych poziomów w programowaniu, z dodatkiem powiązań Python i Ruby (i więcej, zapominam), Vim jest również programowalny pod wieloma względami troszczyłbyś się.
Używam Vima i jestem z tego całkiem zadowolony.
źródło
Wigor:
Emacs:
Osobiście wolę vim - jest mały, robi to, co powinien, a kiedy chcę mieć pełne IDE, otwieram VS. Podejście Emacsa do bycia edytorem, który chce być IDE (lub powinienem powiedzieć, OS), ale nie do końca, jest IMHO, nieaktualne. W dawnych czasach posiadanie klienta poczty e-mail, klienta ftp, tetris ... co innego w jednym pakiecie (emacs) miało jakiś sens ... w dzisiejszych czasach już nie.
Oba są jednak tematem dyskusji religijnych między programistami i użytkownikami społeczności superużytkowników, i pod tym względem oba są doskonałe do rozpoczęcia wojen z płomieniami, jeśli zostaną z nimi w kontakcie (w tym samym zdaniu / pytaniu).
źródło
Jeśli szukasz obiektywnej analizy obu redaktorów, spójrz na ich pochodzenie i filozofię kryjącą się za ich projektami. Zastanów się, który z nich byłby dla Ciebie lepszy i naucz się go (i naucz się go i naucz się, ponieważ potrzeba czasu, zanim odkryjesz jego prawdziwą użyteczność w porównaniu z jakimkolwiek IDE). Wprowadzenie do edytowania wyświetlania za pomocą Vi zostało napisane przez Billa Joya i Marka Hortona i wyjaśnia, dlaczego wybrał projekt modalny i uzasadnienie dla różnych naciśnięć klawiszy (pomaga mi to zapamiętać, że CTRL-W + W (przełączy się na następny W indow i to to samo dla CTRL W + CTRL W, na wypadek, gdybyś przytrzymał klawisz CTRL przez dłuższy czas.
Oto link do osi czasu Emacsa i zawiera odniesienie do papieru Multics Emacs. Oto dokument RMS na temat Emacsa , gdzie widzę, że nacisk kładzie się na programowalny edytor tekstu (jeszcze w 1981 roku i wcześniej).
Nie czytałem gazet emacs, ale kilka razy przeczytałem gazetę Billa Joya. Oba są stare, ale nadal rozumiesz filozofię i możesz użyć obecnego narzędzia (vim 7.x lub emacs 25?)
Edycja: Zapomniałem wspomnieć, że czytanie obu tych artykułów wymaga cierpliwości i wyobraźni, ponieważ zabiera Cię w przeszłość podczas czytania. Ale warto.
źródło
Vim zawsze był szybszy do uruchomienia niż Emacs. Mówię, że na dowolnej maszynie instalacje Vima będą uruchamiane szybciej niż instalacje Emacsa. I wydaje mi się, że po umiarkowanym dostosowaniu jednego z nich Vim nadal będzie uruchamiał się szybciej niż Emacs.
Potem inną praktyczną różnicą były tryby Emacsa. Ułatwiają Ci życie znacznie łatwiej, edytując XML, C / C ++ / Java / cokolwiek, LaTeX i najpopularniejsze języki, o których możesz pomyśleć. Sprawiają, że chcesz mieć otwarty edytor na długie sesje i pracę.
Podsumowując, powiem, że Vim przyciąga cię do krótkich, szybkich zadań edycyjnych; podczas gdy Emacs zachęca do nurkowania na długie sesje.
źródło
use-package
z:defer
opcją, mój Emacs otwiera się prawie natychmiast. Zrezygnowałem nawet z emacsclient.VI jest zawsze dostępny i będzie działał na najbardziej sparaliżowanym trybie pojedynczego użytkownika, zepsutą grafiką, bez mapy klawiszy, na powolnym komputerze - więc warto wiedzieć, jak edytować w nim proste pliki tylko dla zadań sysadmin.
Emacs to kompletny interfejs użytkownika w edytorze. Chodzi o to, że odpalasz Emacsa podczas uruchamiania maszyny i nigdy jej nie opuszczasz. Możliwe jest obecność tysięcy sesji.
To, czy warto poznać możliwości Emacsa w porównaniu do korzystania z edytora GUI / IDE i używania czegoś takiego jak Python / awk / etc do dodatkowych zadań, zależy od Ciebie.
źródło
ed
„zawsze dostępne i będzie działać na najbardziej sparaliżowanym trybie pojedynczego użytkownika, zepsutą grafiką, bez mapy klawiszy, na powolnym komputerze”. Zaraz, który to rok? (Westchnienie -ed
nigdy cię nie zapomnę.)Jestem pełnoprawnym fanem Emacsa, ale znałem VI na długo zanim poznałem Emacsa. Powiedziałem, że cały mój lud uczy się VI, ponieważ jest on zawsze dostępny wszędzie. Nie mogę się pomylić z żadnym z nich.
źródło
Wygląda na to, że odpowiedź została już wybrana, ale duża różnica zawsze była dla mnie modalna vs. niemodalna. Vim jest modalny, co oznacza, że dokonuje optymalizacji w oparciu o określony zestaw trybów użytkowania. Przynajmniej tak zawsze na to patrzyłem. To sprawia, że używanie Vima jest zupełnie innym doświadczeniem, ponieważ zamiast mieć obszar roboczy, w którym wpisujesz kod, naprawdę mówisz środowisku, aby działało na tekście. Dlatego ludzie mówią, że z Vimem naprawdę uczysz się języka. : Wq i: s / foo / bar są częścią środowiska podobnego do powłoki, które edytuje i odczytuje tekst.
Z drugiej strony Emacs jest znacznie bliższy większości edytorów / edytorów tekstu / etc. widzisz dzisiaj. Masz obszar roboczy, który ma wysoce programowalny interfejs. Dlatego widzisz takie rzeczy, jak e-mail, IRC, powłoki itp. Jako programista łatwo jest myśleć w kategoriach „weź numer linii, na której jestem, i zrób coś z informacjami”. Chęć opuszczenia edytora staje się mniejsza, ponieważ zamiast wychodzić, otwierać inną aplikację / język i robić różne rzeczy na tekście, masz Emacsa, w którym możesz robić te rzeczy w ramach swojego edytora.
Te dwie idee niekoniecznie są ze sobą sprzeczne, ale po prostu ujawniają dwa różne cele. Osobiście używam Emacsa, ale widziałem ludzi, którzy naprawdę dobrze znają Vima i mogą szczerze powiedzieć, że nie ma znaczenia, który wybierzesz. Najpierw spróbowałem Vima, ale w końcu Emacs się dla mnie trzymał. Prawdą jest, że bez względu na to, co wybierzesz, powinieneś być przynajmniej trochę biegły w Vimie, ponieważ tak naprawdę jest on zawsze dostępny.
źródło
Zacząłem od vi, poszedłem do emacsa, a potem do vima. Myślałem o wypróbowaniu Emacsa, aby zobaczyć, co się zmieniło w ciągu ostatnich pięciu lat. (Mówiąc o IDE, przez jakiś czas wpadłem w zaćmienie, ale wolę okno terminala łączące mojego Maca z moim (mężem) Linux-em).
Cięcie i wklejanie ostatnio mnie niepokoi. Wytnij i wklej w Vimie wymaga więcej kroków niż w Emacs, IIRC. Wklejanie od powiedzenia przeglądarki do okna terminala jest irytujące, chyba że zrobisz coś wymyślnego, co nie mam ochoty, więc pogodzę się z tym dziwnym wcięciem. Myślę, że edytowanie wielu plików w emacsie było łatwiejsze. Przynajmniej przeskakiwanie z jednego pliku do drugiego, jeśli oba są wyświetlane na ekranie.
Nie grałem w fantazyjne funkcje vi ani emacsa, ponieważ po prostu lubię zajmować się programowaniem. Potrzebuję tylko ładnych kolorów i właściwej konwersji tabulacji na spację (szczególnie ważne w Pythonie).
Myślę, że wszystko zależy od tego, czy chcesz użyć
:wq
lubCtrl-x Ctrl-s
(IIRC), aby zapisać plik, jeśli nie obchodzą Cię wymyślne rzeczy.@mgb było poprawne. Byłem na minimalnym linuksie, aby naprawić coś zaledwie miesiąc lub dwa lata temu w dystrybucji Debiana. vi był jedynym dostępnym edytorem.
źródło
:set paste
, a następnie wklej tekst, a gdy skończysz:set nopaste
, wróci do trybu normalnego. Istnieje również:set pastetoggle=<F2>
polecenie, które przełącza to za pomocą wybranej kombinacji klawiszy.^R^P+
wkleić zawartość ze schowka i zachować bieżące wcięcie.^R^O+
porzuci wcięcie.^R+
wstawi go tak, jakbyś go wpisał.:help i_^R^P
po więcej informacji.yyp
. Zobacz także tutaj, aby wycinać i wklejać do iz różnych okien stackoverflow.com/a/8757876/654789Istnieje ogromna różnica na poziomie z dnia na dzień - Vim (lub dowolny wariant vi) jest z natury modalny (wchodzisz w tryby poleceń, w których nie możesz edytować), a Emacs (wraz z większością innych edytorów) nie są.
Oczywiście, korzystając z menu i takich, nie musisz naprawdę wchodzić w tryb poleceń w Vimie - na początku. Ale wykorzystasz nawet niewielki ułamek mocy Vima. To jest sedno debaty Vim / Emacs.
Osobiście uważam również, że Emacs jest znacznie bardziej rozszerzalny. Możesz znaleźć paczki Elisp dla wielu rzeczy.
Jestem jednak ciekawy, dlaczego zastanawiasz się nad nauczeniem się jednego z nich w bardziej tradycyjnym środowisku IDE. Po co chcesz się uczyć jednego z nich?
źródło
Jest wiele rzeczy, które zostały powiedziane o obu edytorach, ale mam tylko 5 pensów do dodania. Oba edytory są wspaniałe i nie możesz się pomylić z żadnym z nich.
Jestem użytkownikiem vi / vim od około 15 lat. Próbowałem przekonwertować się na emacsa kilka razy, ale za każdym razem odkrywałem, że vim rzeczywiście może zrobić brakującą rzecz po wyjęciu z pudełka, bez potrzeby pisania rozszerzenia Lisp lub instalowania czegoś.
Dla mnie główna różnica w edytorach polega na tym, że vim zmusza cię do korzystania ze środowiska / systemu operacyjnego, podczas gdy emacs próbuje je zamknąć lub zamienić. Na przykład możesz dodać datę w tekście przez: r! Date in vim lub kalendarz przy pomocy: r! Cal 1 2014, a nawet zastąpić zawartość bufora wersją heksadecymalną. Na przykład. :%! xxd, edytuj hex, a następnie wróć za pomocą:%! xxd -r i wielu innych zastosowań, takich jak wbudowany grep, sed itp.
Innym przykładem jest użycie z
jq
igron
. Na przykład. wklej bloka json do edytora, a następnie uruchom transformację:LUB
Każda z powyższych komend potokowych może być uruchamiana osobno przez
:%!<command>
, gdzie%
oznacza cały dokument, ale może być również uruchamiana przy zaznaczeniu, wybranych liniach itp. Tutaj gronoutput
może być użyty jakojq
ścieżka.Otrzymasz również funkcję edycji partii EX, np. Zastępując niektóre słowa, ponownie formatując kod, konwertując znaki nowego wiersza dos-> unix, uruchamiaj makro na powiedzmy 100 plików jednocześnie. Można to łatwo zrobić za pomocą ex. Nie jestem pewien, czy emacs ma coś podobnego.
Innymi słowy, IMHO vim zbliża się do filozofii uniksowej. Zasadniczo jest on prostszy i mniejszy, ale jeśli znasz swój system operacyjny i narzędzia, prawdopodobnie nie będziesz potrzebować więcej niż ma to do zaoferowania (VIM). Nigdy nie robię.
Poza tym vi jest standardem defacto w każdym systemie unix / linux, po co uczyć się korzystania z 2 narzędzi, które robią to samo. Oczywiście niektóre systemy oferują mg lub coś podobnego, ale zdecydowanie nie wszystkie z nich. Unix + Vi <3.
Cóż, tylko moje 5 pensów.
źródło
Dla mnie zaletami emacsa są
źródło
Dla mnie emacs ma lepsze narzędzia programistyczne (nie tylko narzędzia oparte na tagach).
źródło
Chciałbym umieścić tutaj cytat z książki „The Art of UNIX Programming”:
To, co naprawdę chcę tutaj podkreślić, to: „ Wiele osób uważa, że warto wiedzieć jedno i drugie .”
źródło
Korzyści z Emacsa
Emacs ma zarówno interfejs niemodalny (domyślnie), jak i modalny (np. Może emulować vim i vi poprzez Evil, Viper lub Vimpulse).
Jeden z najczęściej przenoszonych programów komputerowych. Działa w trybie tekstowym i pod graficznymi interfejsami użytkownika na wielu różnych systemach operacyjnych, w tym na większości systemów uniksopodobnych (Linux, różne BSD, Solaris, AIX, IRIX, macOSetc.), MS-DOS, Microsoft Windows, AmigaOS, i OpenVMS. Systemy uniksowe, zarówno bezpłatne, jak i zastrzeżone, często dostarczają Emacsa w pakiecie z systemem operacyjnym.
Architektura serwera Emacs pozwala wielu klientom łączyć się z tą samą instancją Emacsa i współdzielić listę buforów, zabić pierścień, cofnąć historię i inny stan.
Wszechstronny system pomocy online z skrótami klawiszowymi, funkcjami i poleceniami udokumentowanymi w locie.
Rozszerzalny i konfigurowalny wariant języka programowania Lisp (Emacs Lisp) z funkcjami, które obejmują:
Potężny i rozszerzalny menedżer plików (dired), zintegrowany debugger oraz duży zestaw narzędzi programistycznych i innych.
Każda komenda może być funkcją Emacs Lisp, która umożliwia komendom DWIM (Rób co mam na myśli) programowe reagowanie na wcześniejsze działania i stan dokumentu. Na przykład polecenie przełączania lub podziału okna może przełączyć się do innego okna, jeśli istnieje, lub utworzyć je, jeśli to konieczne. Zmniejsza to liczbę naciśnięć klawiszy i poleceń, które użytkownik musi zapamiętać.
„System operacyjny w systemie operacyjnym”. Emacs Lisp umożliwia programowanie Emacsa daleko poza funkcjami edycji. Nawet instalacja podstawowa zawiera kilkadziesiąt aplikacji, w tym dwie przeglądarki internetowe, czytniki wiadomości, kilku agentów pocztowych, czterech klientów IRC, wersję ELIZA i różne gry. Wszystkie te aplikacje są dostępne wszędzie tam, gdzie działa Emacs, z tym samym interfejsem użytkownika i tą samą funkcjonalnością. Począwszy od wersji 24, Emacs zawiera menedżera pakietów, który ułatwia instalowanie dodatkowych aplikacji, w tym alternatywnych przeglądarek internetowych, EMMS (Emacs Multimedia System) i innych. Dostępne są również liczne pakiety do programowania, w tym niektóre ukierunkowane na określone kombinacje języka / biblioteki lub style kodowania.
Korzyści z edytorów podobnych do vi
Źródło: https://en.wikipedia.org/wiki/Editor_war
źródło
Teraz nie musisz nawet myśleć o różnicy między nimi ze względu na Spacemacs . Jest to dystrybucja Emacsa oparta na społeczności.
Jak już powiedziano
Spacemacs łączy w sobie to, co najlepsze z Emacsa i Vima, co znacznie ułatwia życie i pracę.
Zobacz zrzut ekranu poniżej,
(źródło: spacemacs.org )
źródło
Największą różnicą dla mnie przy wyborze emacsa zamiast vima była wbudowana obsługa gdb w emacsie. Vim nie ma tego w domyślnej dystrybucji, a projekt integracji gdb i vim był prawie niemożliwy do rozpoczęcia pracy z MacVimem
źródło
To jak jabłka i pomarańcze. Oba mają różne wzornictwo i filozofię. Vim jest edytorem tekstu, a Emacs to interpreter Lisp, który wykonuje edycję tekstu.
Używam Vima, ponieważ jest szybki, elegancki i naprawdę dobry w manipulowaniu tekstami. Składa się z naturalnego, wiążącego się klucza, który może sprawić, że Twoje zadania programistyczne będą naprawdę harmonijne. Vim opiera się na prostej filozofii * nix polegającej na robieniu jednej rzeczy naprawdę dobrze - tj. Manipulacji tekstem.
Rozszerzanie Vima przy użyciu bash / zsh i tmux jest zwykle łatwe i pozwala nauczyć się wielu rzeczy. IMHO to dobra krzywa uczenia się. Najważniejsze jest, aby nauczyć się integrować te rzeczy, aby uzyskać większą działającą aplikację. W Vimie musisz nauczyć się integracji, ponieważ nie integruje się ona naturalnie, chyba że powiesz, jak to zrobić. Innym wartym uwagi rozszerzeniem, którego używam, jest Tig. To nakładka Git oparta na ncurses. Mam tylko powiązanie, które otwiera Tig po cichu, a potem robię tam wszystkie rzeczy z Git.
To użytkownik końcowy decyduje, co działa najlepiej. To, że Emacs i Vim przetrwali próbę czasu, jest dowodem ich godności. W końcu dobry programista potrzebuje jedynie długopisu i papieru, aby być kreatywnym. Dobre algorytmy nie potrzebują edytorów do ich obsługi. Wypróbuj je oba i przekonaj się, co zwiększa produktywność. Naucz się wzorców projektowych z obu tych programów, ponieważ jest wiele do nauczenia się i odkrycia!
źródło
Emacs ma tryb vipera, więc w pewnym sensie zapewnia superset funkcji (oprócz tych opisanych w Czego brakuje Vimowi w Emacsie z Viperem i Vimpulse? ).
vi (i VIM IIRC) jest lżejszy (może edytować pliki w miejscu), ale oferuje mniej funkcji (komunikacja podprocesowa, język rozszerzeń).
źródło
Emacs to tak naprawdę program do robienia wszystkiego , a vi (m) to tak naprawdę tylko edytor. Jeśli edytujesz tekst, oba są w porządku, ale wolę emacs, po prostu dlatego, że muszę przesunąć jeden z wiersza głównego, aby się poruszać, i nadal wpisywać niewłaściwe rzeczy w trybie poleceń. Jeśli nie masz tego problemu, vi (m) może być dla ciebie edytorem.
źródło
Żółtawy punkt widzenia:
vi (nie vim) jest koniecznością zawodową. Zawsze masz jakąś formę vi łatwo dostępną, bez względu na środowisko. Możesz być w vi, gdy jesteś w emacsie, możesz być w vi, aby budować komendy bash w unix-land.
Nawet Microsquish musi wspierać vi (choć dobrze sobie z tym radzi, ukrywając go) z powodu rządowej i korporacyjnej zgodności z opublikowanymi standardami.
Moim zdaniem, jeśli wykonujesz praktyczną pracę w zatłoczonym środowisku - a nie kwiat szklarni ograniczonej do jednej fantazyjnej platformy w środowisku programistycznym lub w środowisku akademickim - wiedza o fantazyjnym edytorze jest utrudnieniem. Nie ucz się wszystkich fantazyjnych sztuczek w vimie lub emacsie i nie rozwijaj wielu makr, aby środowisko edytorskie zgięło się do twojej woli. To ogromne pochłanianie czasu, które przeszkadza w pracy z różnymi maszynami, których prawdopodobnie nie można usprawiedliwić w środowisku fabrycznym.
Przeczytaj artykuł Billa Joya - jest to bardzo kompetentne, być może nawet piękne, inżynierskie ćwiczenie w bardzo szybkim edytowaniu zwykłego tekstu. Obowiązuje tutaj zasada Parito: 80% owoców znajduje się w 20% koszy. Bardzo szybkie edytowanie zwykłego tekstu jest podstawą kompetencji edytorskich - wszystko inne jest opcjonalne - a czasem bolesne.
źródło
Jeśli często przemieszczasz się z miejsca na miejsce lub Twoja praca wymaga zalogowania się do systemów produkcyjnych, vim jest właściwą drogą.
Wszystkie maszyny * nix będą miały domyślnie zainstalowane vi.
Większość sysdaminów woli ksh jako domyślną powłokę. ksh używa klawiszy poleceń vi (lub emacs) do przeszukiwania historii i edycji wiersza poleceń.
Jeśli nie znasz dobrze vi, jesteś poważnie upośledzony, gdy logujesz się do skrzynki unixowej ze standardową konfiguracją.
Tylko z tego powodu polecam vim jako zwykły edytor na co dzień. Widziałem, jak fani emacsa rozdzierają włosy, próbując zmienić pliki konfiguracyjne na gołym serwerze Unix.
źródło
set -o vi
w swoim.bashrc
, zamiastset -o emacs
, który jest używany domyślnie. Nigdy nie korzystałem z ksh, ale może być tak samo.W swoim pytaniu nie wspomniałeś, że chcesz, aby programował w Lisp! Ale kiedy komentujesz swoje odpowiedzi, zrozumiałem, że tak naprawdę potrzebujesz interfejsu programistycznego LISP.
Aby wykonać to precyzyjne zadanie, po prostu zapomnij o Vi. Integracja Emacsa z LISP jest cudowna! Powinieneś użyć SLIME. Będziesz wtedy miał wspaniałą integrację z REPL, będąc w stanie
eval
obsługiwać funkcje, bufory lub pliki bezpośrednio do działającego interpretera w buforze emacsa i wiele więcej ...źródło
Pracuję z kosmicznymi komputerami kosmicznymi od około 2 lat i neovim od około roku w środowisku produkcyjnym / badawczym. Spacemacs to emacs z kilkoma ładnymi dodatkowymi funkcjami, takimi jak warstwy itp. A neovim to znów vim z kilkoma dodatkowymi funkcjami.
Jestem całkiem niezadowolony z nich obu pod względem doświadczenia. Nadal szukam długoterminowego rozwiązania dla moich potrzeb edycji tekstu.
Oto proste porównanie:
Neovim, vim, emacs, spacemacs itp. Wszystkie te edytory zużywają mniej zasobów niż większość edytorów.
Neovim / vim jest nieco szybszy niż emacs, zauważalnie szybszy niż kosmiczny.
Pod względem doświadczenia edycyjnego. Mogę z łatwością powiedzieć, że pakiety emacsa są lepsze. Myślę, że to dlatego, że lepiej komponują się z rdzeniem emacsa.
Vimscript jest fajny i na pewno są też świetne projekty w ekosystemie vim. Dobrą rzeczą jest to, że są lepiej udokumentowane niż większość projektów emacsa, które widziałem do tej pory.
Oba mogą być usterkowe w zależności od używanego pakietu. Spacemac mają tendencję do zawieszania się, a neovim mają tendencję do wyświetlania przerażających komunikatów o błędach, więc wybierz tam swoją truciznę.
Edycja modalna w vimie nie jest intuicyjną koncepcją, ale gdy już się przyzwyczaisz, chcesz ją gdziekolwiek. Oba edytory to zapewniają.
źródło
Wykonanie naciśnięcia klawisza ::: vi edycja zachowuje każdą permutację wpisywanych klawiszy. To tworzy ścieżkę w drzewie decyzyjnym, która jednoznacznie identyfikuje dowolne polecenie, podczas gdy polecenia Emacsa są kombinacją klawiszy wpisywanych natychmiastowo, co pozostawia użytkownikowi wybór, czy użyć polecenia.
Zużycie pamięci i możliwość dostosowania ::: vi to mniejszy i szybszy program, z bardziej ograniczoną możliwością dostosowywania, podczas gdy Emacs uruchamia się dłużej i wymaga więcej pamięci. Jest jednak wysoce konfigurowalny i zawiera wiele funkcji, ponieważ jest to zasadniczo środowisko wykonawcze dla programu Lisp przeznaczonego do edycji tekstu.
źródło
vim to przydatny edytor, wystarczy wpisać
vim filename
plik, edytować, zapisać i zamknąć.emacs to „system operacyjny”, który udaje edytora, możesz
eval
kodować, aby zmieniać jego zachowanie i rozszerzać go tak, jak chcesz.mode
Otrzymywać / wyślij e-mail na emacs jest jak oprogramowanie e-mail od systemu operacyjnego.Podczas prostej edycji, na przykład modyfikacji pliku konfiguracyjnego, używam vim .
W przeciwnym razie nigdy nie zostawiam emacsa .
źródło
Myślę, że główną różnicą jest cel projektu. VIM jest przeznaczony dla systemu UNIX jako działający edytor. Emacs jest przeznaczony dla hakerów GNU i lisp, więc ma jakiś mieszany element projektu.
Używam vima na mojej stacji roboczej, podczas gdy ja też kocham emacsa.
źródło
Jestem fanem Emacsa, ale zachęcam innych programistów do nauki VI, ponieważ:
Zauważyłem kilka komentarzy na temat uruchamiania VIM szybciej niż emacs. Jeśli naprawdę Ci na tym zależy, uruchom emacsa w trybie serwera i alias „emacs” na „emacsclient”. Klient jest super szybki, ponieważ wystarczy dotknąć serwera na ramieniu i powiedzieć mu, który plik chcesz edytować. W systemie MacOSX emacsclient ma tylko 33 KB, podczas gdy emacs to 287 mln.
Nie jestem pewien, czy to wszystko jest konieczne na nowoczesnym sprzęcie. Na moim MacBooku Pro (Retina 2013) emacs ładuje się niemal natychmiast po uruchomieniu go z powłoki. Nie wykrywam żadnej przerwy. Kiedy uruchamiam Emacs.app (wersja GUI), może to potrwać 3 sekundy.
Większość skarg, które słyszę o emacsach, wydaje się pochodzić od osób źle poinformowanych o emacach. Korzystając zarówno z vi, jak i emacsa od 1982 roku, zdecydowanie pamiętam czas, w którym emacs ładował się znacznie wolniej niż vi i zużywał większość pamięci fizycznej w moich wczesnych urządzeniach z systemem UNIX, ale tak już nie jest i nie było to przez co najmniej 15- 20 lat.
Jedna skarga, którą przyznam, to „emacs pinkie”. To nigdy mnie nie martwiło, kiedy byłem młodszy. Teraz, gdy mam 58 lat, moja mała szpilka robi się trochę obolała od wielokrotnego uzyskiwania dostępu do klawisza Control do nagrywania emacsa. Jest to szczególnie prawdziwe na klawiaturze MacBook Pro, w której Control jest przesuwany o jedną pozycję w prawo, aby zrobić miejsce na klawisz „fn”. To nie jest tak denerwujące, gdy Control jest lewym dolnym klawiszem.
źródło
Najpierw byłem użytkownikiem vima, potem przełączyłem się na emacsa, potem na vima, teraz znów eksperymentuję z emacsem.
Jako programiści dużo piszemy, a wreszcie dla mnie poruszanie się w buforach i plikach to największe powtarzalne zadania, więc chcę edytora, w którym MOGĘ SZYBKO SZYBKO!
Motywacją do ponownego eksperymentowania z emacsem jest to, że wpadłem na to, że Ctrl prowadził skróty klawiszowe szybciej niż vim i łatwiej było o tym myśleć.
W vim masz tryby, masz tryb wstawiania, tryb wizualny, tryb normalny, co dzieje się, gdy coś naciskasz, zależy od trybu, w jakim jesteś, jest stanowym podejściem do edycji. Poruszasz się, wchodzisz w tryb wstawiania, edytujesz, wychodzisz z trybu wstawiania i przenosisz ponownie. Często gubię się, jeśli brakuje mi prasy ESC lub czegoś takiego.
W emacsie nie ma trybu, w zasadzie naciskasz klawisz Ctrl za pomocą różu i wpisujesz naciśnięcie klawisza, np. Cx Cf, Cx Cs, Cx Cc. Są skróty klawiszowe, w których musisz zwolnić klawisz Ctrl, nienawidzę tych i zawsze zastępuję je tymi z wciśniętym klawiszem Control.
Myślę, że podejście emacsa jest szybsze w myśleniu i pisaniu, ale vim ma jeszcze jedną siłę. Jego polecenia można komponować, zwykle mają format. Na przykład, aby usunąć wiersz, którego możesz użyć
dd
, aby usunąć słowodw
. Wtyczki korzystają z tej funkcji, dzięki wtyczce vim-surround możesz usuwać cytaty za pomocą ds „(delete surround”), usuwać do następnego /dt/
. Usuń do poprzedniego /:dT/
i tak dalej. Tak długo, jak się uczysz, ruchome rzeczy stają się bardzo interesujące.Podsumowując, dzisiaj pomyślałem, że skróty klawiszowe emacsa są szybsze do edycji makr, a polecenia vim są bardziej wydajne do mikroedytacji
Używam vima przez ostatnie pięć lat, więc edytuję myślenie głównie o słowach, liniach, otaczaniu, blokach itp. Usuń tę linię, usuń cytaty, zamień cytaty, usuń słowo w kursorze, próbuję znaleźć emacsa porusza się w tym celu
Na koniec chciałbym powiedzieć, że bardziej zależy mi na fzf niż na emacsie lub vimie, chciałbym mieć edytor całkowicie oparty na fzf
źródło
Po pierwsze Vi (oryginalna realizacja) nie jest dziś używane. Mówisz, że to jakaś pochodna Vima.
Aby rozszerzyć funkcjonalność Vima, musisz ponownie skompilować Vima, a nie Emacsa.
Emacs ma Vima we własnym (tryb vipera).
Emacsy zwykle wymagają ręcznej instalacji, Vim zazwyczaj jest wstępnie instalowany na wszystkich systemach operacyjnych takich jak Unix (ale jeśli masz dostęp ssh do hosta w trybie trampowym, wygrywaj Vima :).
Jeśli wypróbujesz Vima, nie znosisz Emacsa, więc zacznij od Emacsa.
Przeczytaj także http://www.dina.dk/~abraham/religion/vi-tutorial.html (link do dołu, więc użyj tego )
Wyszukiwanie anwer w hxxp: //en.wikipedia.org/wiki/Editor_war
źródło