Cechy Emacsa, które uzupełniają Vima?

5

Od dłuższego czasu intensywnie korzystam z Vima i naprawdę lubię z nim pracować. Jednak wciąż czytam pochwały dla Emacsa. Zdecydowałem się spojrzeć na Emacsa, aby uzupełnić moją wiedzę o edytorach Unix (nie wspominając o skrótach klawiszowych Emacsa, które są szeroko stosowane).

Ale! Cieszę się, że większość mojej codziennej pracy wykonuję w Vimie. Najlepiej więc popatrzeć (oprócz podstaw) na luki, które może wypełnić Emacs, lub na rzeczy, które może zrobić lepiej niż Vim. Przypuszczam, że kanonicznym przykładem jest kodowanie Lisp / Scheme w Emacs kontra Vim.

Gdzie zacząłbyś majstrować przy Emacsie, by naprawdę docenić jego moc i dobrze zrozumieć, jak jego podejście do edycji różni się od Vima i jak redaktorzy mogą się uzupełniać? Jakie byłoby dobre wprowadzenie w tym samym duchu?

redacted
źródło

Odpowiedzi:

7

Które funkcje się uzupełniają? Prawie wszystko, co nie jest prostą edycją tekstu. Czytanie poczty, usenet, uruchomienie powłoki, debugger (gdb), kompilacja, integracja kontroli wersji, strony man, listy zadań / planowanie projektu (org, planner), przeglądanie stron internetowych, ide (CEDET), IM, IRC, zdalna edycja plików TRAMP), itp. Są nawet takie głupie rzeczy jak gry: tetris, snake, bubbles, pong.

W domenie ścisłej edycji tekstu zarówno Emacs, jak i vi wykonują pracę, którą wolisz, jak to, które lody wolisz. I zgadzam się z tym richard hoskins , Tryb Vipera jest prawdopodobnie sposobem na zbadanie Emacsa, jeśli nie jesteś zainteresowany przełączaniem całego Hog.

Uwaga: Przepraszam, jeśli któraś z funkcji jest dostępna w vimie, minęło dużo czasu, odkąd ją użyłem i byłem bardzo prostym użytkownikiem vima.

Trey Jackson
źródło
1
Zalecam, aby początkowo nie używać trybu Viper. Zapoznaj się z powiązaniami klawiszy emacs, następnie włącz tryb vipera - w przeciwnym razie skończysz po prostu „używając gównianej emulacji vi”, a nie przyzwoitego edytora, który może mieć powiązania klawiszy vi
dbr
6

Możesz użyć trybu Viper. Viper to emulator vi, który prowadzi użytkownika vi przez 5 poziomów, a każdy poziom wprowadza funkcje, gdy użytkownik czuje się komfortowo z Emacsem.

Poziom 1 jest prawie prosty vi. Poziom 5 to prawie Emacs. Możesz przełączyć się z żmii na prostego Emacsa iz powrotem na życzenie.

Viper jest dostarczany z Emacsem i jest skonfigurowany i gotowy do użycia. M-x viper-mode uruchamia go. Posiada ekran wprowadzający, który wyjaśnia, jak go używać.

Richard Hoskins
źródło
1

To, co zmieniło mnie z nvi / vim na nvi / emacs, ponieważ moje odpowiednie „zmiany dwóch słów w pliku” / „spędzają godziny na edycji ogromnego drzewa katalogów pełnego plików”, to integracja podprocesów. Będąc w stanie ocenić obszar tekstu w tłumaczu za pomocą naciśnięcia klawisza, automatycznie przeskoczyć do błędów, aby je poprawić, a następnie pozostawić tłumacza działającego przez cały czas był niezwykle pomocny.

Inne rzeczy, za którymi dzisiaj tęsknię, gdy nie używam emacsa: spójność skrótów klawiszowych w różnych trybach i kontekstach (wycinanie / wklejanie / ruch / itd. Działa tak samo w minibuforze, jak w buforze), interaktywna aktualizacja wyświetlania potencjalnych uzupełnień za pomocą trybu ido (" Cx b ”pokazuje mi listę buforów, na które mogę się przełączyć, wpisując jedną literę„ .c ”ukrywa wszystkie bez bufora .c gdzieś w nazwie,„ Cs ”obraca listę,„ enter ”wybiera element Jestem sfrustrowany tym, że mój menedżer okien lub firefox jest bezużyteczny, teraz, gdy mam sposób przełączania kontekstów, wszystko inne jest niezdarne.

Kolejną zaletą w moim umyśle jest wielowarstwowa przewaga, którą większość emaców jest implementowana w seplenieniu emacsa. Oznacza to, że emacs lisp jest użyteczny jako język rozszerzeń i posiada funkcje potrzebne do prawdziwego programowania. Oznacza to, że język rozszerzenia jest wystarczająco wydajny i skalowalny. Oznacza to, że kiedy ludzie rozszerzają emacs, aby poprawić swoją wydajność, ich funkcje mogą być trywialnie zintegrowane z oficjalnymi emacsami. Z biegiem czasu oznacza to, że emacs jest społecznością rozwijaną na skalę nie dopasowaną do żadnego innego projektu wolnego oprogramowania (chociaż firefox może w końcu dogonić rzeczy xul / userscript). Oznacza to, że ponieważ elisp jest językiem bardzo refleksyjnym, mogę w sposób interaktywny wysyłać zapytania o funkcjonalność edytora - w języku wystarczająco odblaskowym sam program jest najbardziej dokładną dokumentacją, jaką możesz mieć.

Justin Smith
źródło
0

To, co naprawdę zmusiło mnie do przejścia z Vima na Emacsa, było Tryb Org , co pozwala na elastyczną organizację osobistą lub publikację. To zarys, a nie wydaje mi się, że w Vimie coś się zbliża. Używam również R i Latex, a wbudowane wsparcie dla obydwu jest bardziej wytrzymałe (w moim doświadczeniu) niż integracja z Vimem. Lubię pakiet Vim-Latex, ale Emacs wydaje się bardziej wydajny.

Naprawdę podoba mi się korzystanie z Vima, ale obecnie używam VACMU w trybie Vimpulse, który jest ulepszeniem trybu Viper, aby był podobny do vima. Jedną z zalet vimpulse w przeciwieństwie do zwykłego vima jest to, że można zrobić więcej rzeczy w trybie edycji; jeśli chcesz wykonać szybkie edycje, możesz użyć skrótów klawiszowych emacs bez konieczności przełączania trybów.

Chow
źródło