Jedna debata, która od dziesięcioleci myje nowi nowicjuszy, teraz obraca się wokół VIM kontra Emacs, które są dwoma czcigodnymi redaktorami tekstowymi, których wielu doświadczonych użytkowników i programistów Linux nadal preferuje jako alternatywy dla współczesnych redaktorów i idenów, takich jak Sublime Text, Visual Studio Code lub IntelliJ.
W tym artykule porównujemy VIM i EMACS, aby wyjaśnić, dlaczego porównanie tych dwóch edytorów tekstu jest jak porównywanie jabłek z pomarańczami. Pod koniec tego artykułu powinieneś być w stanie zdecydować, który z dwóch redaktorów tekstu bardziej pasuje do twoich potrzeb i preferencji, a także czy nie powinieneś trzymać się czegoś bardziej nowoczesnego.
Filozofia projektowania
VIM został wydany po raz pierwszy w 1991 roku jako bezpośredni potomek VI, znacznie starszy edytor tekstu zorientowany na ekran, który pierwotnie opracowany przez Billa Joy dla systemu operacyjnego UNIX. Twórca Vima, Bram Moolenaar, pierwotnie nazwał redaktor VI imitację, ale później postanowił zmienić znaczenie akronimu na VI ulepszone. Fan oprogramowania typu open source, Moolenaar wydał VIM na licencji Charityware, zachęcając użytkowników, którzy lubią redaktor tekstu do przekazywania dzieci w Ugandzie.
Podobnie jak VI, Vim ma być szybki, łatwo dostępny i niezwykle wszechstronny. Jest wstępnie zainstalowany w większości dystrybucji Linux i jest dostępny dla praktycznie wszystkich systemów operacyjnych. Ponieważ vim jest wszędzie, to naprawdę opłaca się poznać przynajmniej podstawy, ponieważ nigdy nie wiesz, kiedy musisz edytować plik tekstowy w systemie, który nie ma twojego ulubionego edytora tekstu.
Emacs istnieje od 1976 roku, a jego nazwa oznacza makra redaktorów. Wersja EMACS, które większość ludzi używa dzisiaj, nazywa się GNU Emacs, która została stworzona przez nie innego, jak założyciel projektu GNU Richard Stallman. Podobnie jak VIM, Emacs działa zasadniczo na wszystkich systemach operacyjnych, które kiedykolwiek spotkasz. Ponieważ jednak jest to stosunkowo duży oprogramowanie, zwykle nie jest wstępnie zainstalowany.
Powód, dla którego Emacs jest duży, ma wszystko wspólnego z faktem, że jest znacznie bliżej systemu operacyjnego niż edytor tekstu. Zawiera kompletny język programowania, EMACS LISP, który umożliwia dostosowanie i rozszerzenie EMACS w sposób, w jaki umysł ma problemy z zrozumieniem. Aby zilustrować, co mamy na myśli, zachęcamy do odwiedzenia strony internetowej Gneve, redaktora wideo Emacs.
Łatwość użycia
Powyższy obraz doskonale ilustruje krzywe uczenia się VI/VIM, EMACS i innych popularnych redaktorów tekstowych. Dzięki VIM wszystko, co musisz zrobić, aby rozpocząć, to otworzyć prawie każdy kodek, który znajdziesz w obrazach Google w osobnym oknie i grać z kluczami kluczowymi przez chwilę. Początkowo nawet nie wiesz, jak edytować plik tekstowy, ale nie zajmie Ci więcej niż kilka godzin, aby poznać wszystkie podstawy. Możesz nawet pobrać wersję GUI VIM, taką jak GVIM, aby dodać menu i paski narzędzi do powszechnie używanych poleceń, dzięki czemu edytor jest jeszcze łatwiejszy do nauczenia.
Emacs jest trochę jak gra z piaskownicą. Zaczynasz od nieoznaczonego brązowego pudełka wypełnionego narzędziami zdolnymi do osiągnięcia prawie wszystkiego, co możesz sobie wyobrazić, zawiera edycję plików tekstowych. Jedynym problemem jest to, że nie ma oczywistego sposobu podejścia do tej piaskownicy. Podczas gdy istnieją ściągniki i samouczki online, ale możesz spędzić z nimi godziny, a ledwo zarysujesz powierzchnię tego, co Emacs może zrobić. Tak, poznanie i outów Emacsa może być niezwykle satysfakcjonujące, ale powinieneś zadać sobie pytanie, czy podróż jest warta wysiłku.
Wydajność
VIM to szybki edytor tekstu, który otwiera się natychmiast i przedstawia użytkownikom dwa tryby: tryb wstawienia i tryb poleceń. Pierwszy z nich wpisujesz tekst do edytora, podczas gdy drugi jest miejscem, w którym wpisujesz skróty klawiatury, aby wykonać różne polecenia. Emacs zajmuje nieco dłużej, a jest to modne, podobnie jak większość redaktorów tekstu dzisiaj.
Mimo że Emacs może zająć aż 2-3 sekundy, aby załadować starsze systemy, większość użytkowników wcale nie przeszkadza, ponieważ nigdy tego nie zamyka. Zamiast tego otwierają Emacsa w trybie Shell, pozwalając im uruchomić Shell w Emacs, zamiast na odwrót. Gdy Shell działa w Emacs, możesz mniej więcej żyć w oprogramowaniu 24/7 i użyć go do robienia wszystkiego, od słuchania muzyki po robienie notatek po granie w gry.
Nie trzeba dodawać, że łatwo jest rozproszyć się z Emacs, jeśli jesteś typem osoby, która lubi majstrować przy oprogramowaniu. Ale jeśli uda ci się skupić i korzystać z EMACS w celu poprawy przepływu pracy, Twoja wydajność może gwałtownie wzrosnąć. W przypadku czystych edycji tekstu Vim jest zwykle szybszy, ale doświadczenie odgrywa w tym względzie ogromną rolę.
Możliwość konfigurowania i rozszerzalności
Zarówno VIM, jak i Emacs obsługują wtyczki, które mogą zwiększyć ich funkcjonalność, EMACS posuwa się możliwość dostosowywania i rozszerzalności o krok dalej dzięki językowi programowania EMACS LISP. Ponieważ Emacs Lisp jest kompletna, jego możliwości są nieograniczone.
Czy chciałbyś wyszukać Google prosto z Emacs? Wystarczy uruchom następujący kod Lips EMACS, wpisz M-X prelude-google, a to nowe polecenie natychmiast zadziała:
(defun Prelude-Google ()
„Google, jeśli istnieje."
(interaktywny)
(Przeglądaj Url
(Concat
„http: // www.Google.com/wyszukiwanie?IE = UTF-8 i OE = UTF-8 & Q = "
(Jeśli Mark-Active
(-substring buforu (region-begining) (region-end))
(Odczyt „Google:”)))))
Aby dowiedzieć się więcej o imponującej rozszerzalności EMACS, zalecamy przeczytanie tego artykułu napisanego przez Bozhidar Batsov, autora kodowego fragmentu powyżej.
Kiedy użytkownicy VIM mają wrażenie, że brakuje im pewnej funkcjonalności, zazwyczaj pobierają jedną z tysięcy łatwo dostępnych wtyczek VIM. Mogą jednak również używać Vimscript, wewnętrznego języka scenariuszy Vima. Zarówno Vim, jak i Emacs dodatkowo wspierają motywy, więc nic nie powstrzymuje cię przed udawaniem NEO z Matrix.
Wniosek
Jak powiedzieliśmy na początku, porównanie VIM z EMACS jest jak porównywanie jabłek z pomarańczami. Jeden jest zdolny do edytora tekstu z wieloma zaawansowanymi funkcjami skierowanymi do zaawansowanych użytkowników, a druga to piaskownica, która jest świetna do edytowania plików tekstowych. Jeśli jesteś zadowolony ze swojego obecnego przepływu pracy i chcesz tylko alternatywę dla współczesnych redaktorów tekstu, takich jak wysublimowany tekst, vim to droga. Ale jeśli chcesz całkowicie ponownie wyobrazić sobie sposób edytowania plików tekstowych i pisania aplikacji, EMACS może dać ci wszystko, o co możesz poprosić i więcej.