Как стать автором
Обновить

Vim vs. Emacs: древняя битва, наполненная безумными фактами

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.4K

Vim и Emacs — это, пожалуй, самый древний и легендарный «братский» конфликт в мире текстовых редакторов. Одни говорят: «Люди делятся на тех, кто знает Vim, и тех, кто знаком с болью и страданием». Другие возражают: «Emacs на самом деле полноценная операционная система, где просто не хватает хорошего текстового редактора».

Давайте попробуем окунуться в историю этого противостояния и собрать любопытные (а местами и безумные) факты о Vim и Emacs.

Содержание

Почему «битва древняя»?

Vi родился в конце 1970-х годов в среде UNIX. Первоначально это была модификация ex, созданная Биллом Джоем (Bill Joy), сооснователем Sun Microsystems.

Emacs появился в 1976 году благодаря Ричарду Столлману (Richard Stallman), который объединил несколько макросов для редактора TECO (откуда, кстати, и пошло название — Editor MACroS).

Оба эти редактора прошли через десятилетия эволюции. В настоящее время под именем Emacs чаще всего подразумевается GNU Emacs, а под vi — обычно Vim (Vi Improved), который создал Брэм Муленар (Bram Moolenaar) в конце 80-х.

Vim в 1993-м
Vim в 1993-м

Фанатские войны (или религия текстовых редакторов)

Говорят, пользователи Vim видят лишь один реальный путь: команды, режимы (Normal, Insert, Visual) и магическую клавишу Esc, которая определяет ритм работы.

Эмаксеры гордо заявляют: «Это не просто редактор, это операционная система, где можно сделать всё, что угодно — от чтения почты до игры в Tetris». Да, вы не ослышались, в Emacs есть встроенные игры.

Существует мем: «Emacs — это восемь мегабайт непрерывно расширяющегося SWAP-а» (Eight Megabytes And Constantly Swapping). Это, конечно, избыточное упоминание, ведь в реальности Emacs уже давно «съедает» больше памяти (теперь это могут быть сотни мегабайт!).

У Vim своя гордость: где ещё можно свести с ума новичка, когда он застревает в самом редакторе и не понимает, как из него выйти? «Помогите, я не могу выйти из Vim!» — стала классической шуткой.

«Vim vs. Emacs» и мифы о производительности

Vim известен своей лёгкостью и скоростью. Фанаты утверждают: «Если ты пишешь код в консоли на медленной виртуалке через SSH, Vim всё равно не подведёт».

Emacs зачастую называют тяжеловесом, но это отнюдь не мешает сообществу добавлять туда всё новые возможности — встроенный чат, почтовый клиент, браузер, органайзер (Org mode) и даже DOOM Emacs (быстрая конфигурация редактора в стиле игры DOOM).

Периодически всплывают бенчмарки, где сравнивают, кто быстрее открывает большие файлы или насколько экономно расходует память. На деле здесь многое зависит от привычки и требований пользователя.

Расширения и плагины

В Emacs можно:

  • Играть в Tetris, Snake, Pong и многое другое.

  • Читать почту через встроенный Gnus.

  • Слушать музыку.

  • Использовать Org mode для планирования жизни.

В Vim тоже есть масса плагинов, хоть они менее «игровые»:

  • Чат в Vim — было несколько попыток заставить редактор служить мессенджером.

  • Vim-Beats или «музыкальные» плагины.

  • Тонна игр, включая сбор плиток 2048.

  • Превратить статус в Nyan Mode (см. картинку ниже).

    Кот показывает ваше положение в файле
    Кот показывает ваше положение в файле

Полезно, но непонятно: моды и хоткеи

Самая большая боль новичков: как переключаться между режимами?

  • В Vim есть минимум три основные режима: Normal, Insert и Visual. Плюс ещё «бог знает сколько» более экзотических (Command-line, Select, Ex и т.д.).

  • Emacs не полагается на режимы, там действуют комбинации клавиш в духе: Ctrl + X, Ctrl + C (выйти), Ctrl + X, Ctrl + S (сохранить) и проч. Мышцы пальцев быстро учат новое положение, хотя изначально всё это кажется странным.

Интересный факт: в Emacs существуют «evil-mode» и «viper-mode», эмулирующие работу в стиле Vim. А в Vim есть плагины, делающие «Emacs-like» биндинги. Фактически, можно превратить Emacs в Vim или Vim — в Emacs, что иногда вводит людей в ступор.

Бородатые шутки

Как выйти из Vim?

Мем, который сопровождает редактор уже многие годы. Люди шутят, что уже проще выключить компьютер, чем вспомнить, что нужно нажать Esc, потом набрать :q! и нажать Enter.

 Реальный вопрос на stackoverflow
Реальный вопрос на stackoverflow

Emacs как операционная система.

«В Emacs можно сделать всё, даже варить кофе, если прикрутить нужный расширитель». Звучит смешно, но фанаты действительно умудряются через Emacs читать новости, писать код, составлять ToDo-листы и ещё стримить на Twitch.

Ctrl+Alt+Shift + ...

Легенды о сложных сочетаниях клавиш в Emacs... Иногда создаётся ощущение, что для чего-то элементарного нужно нажать все существующие модификаторы.

«Загружу-ка я Emacs»

Шутки про то, что Emacs медленно запускается, а во время этого успевает «пробежать» ваша целая жизнь. Впрочем, это уже не так актуально в эпоху быстрых SSD и быстрых процессоров.

А что насчёт расширенных возможностей?

Emacs легко модифицировать с помощью языка Emacs Lisp: вы можете создавать самые сумасшедшие функции и пакеты — от автогенерации документации до написания собственных игр.

Vim использует собственный скриптовый язык Vimscript, а также способен работать с Python, Lua и прочими интерпретаторами для мощных плагинов и автоматизаций.

При всём этом оба редактора — полностью Open Source. А ещё в каждом полно тонких особенностей вроде мета-регистров, буквенных буферов, ключевых последовательностей, которые сложно отследить.

Любопытный момент исторической эволюции

  • Эпоха GNU: Emacs сыграл роль флагманского проекта вместе с компилятором GCC и другими инструментами FSF (Free Software Foundation).

  • Развитие vi/Vim: со временем vi «прокачался» до Vim благодаря Брэму Муленару, и вот уже много лет Vim поддерживает полноценные плагины, графический интерфейс (GVim) и прочие удобства, которые помогают не отставать от «тяжеловесного» Emacs.

Иными словами, мы видим, как два проекта шли параллельными путями, но каждый раз удивляли мир странными и невероятными решениями.

Vim vs. Emacs: так кто победит?

Ответ очевиден: никто. В реальности многие разработчики удерживают оба редактора в своём арсенале. Иногда удобно открыть Emacs для сложной интеграции с окружением, а иногда «быстрый» Vim спасает, когда нужно отредактировать файл за секунды.

При этом существует и третья категория: пользователи, которые давно работают в Visual Studio Code, Sublime, JetBrains IDE (да, там тоже есть плагины, которые эмулируют Vim или Emacs). Так что «война» давно перестала быть дуэлью, превратившись в праздник выбора.

Источники и дополнения

  1. Официальный сайт Vim (здесь много документации и забавных FAQ о выходе из редактора).

  2. EmacsWiki — огромная коллекция советов и руководств, от настройки e-mail до создания игр.

  3. Richard Stallman и его истории о том, как зарождался Emacs (можно послушать интервью и подкасты).

  4. Bram Moolenaar — автор Vim, в одном из выступлений рассказывал о философии редактора (особенно о режиме modal editing).

Заключение (aka :wq)

Vim vs. Emacs — это уникальная история о том, как два совершенно разных подхода к редактированию текста ведут «битву» уже больше 40 лет. У каждого есть своя магия, фанаты, мифы, легенды и целые пласты безумных фактов. Разумеется, победитель в этой битве всегда остаётся на усмотрение самого пользователя.

Но мы точно знаем, что, если вас однажды спросят, как выйти из Vim или зачем Emacs нужен встроенный Tetris, вы сможете ответить с улыбкой и, возможно, приобщить собеседника к одному из самых забавных (и в чём-то даже эпичных) противостояний в мире IT.

P.S. Если вы дочитали до конца, возможно вам будет интересен мой канал. В него я пишу про свою работу и разработку пет-проектов.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой IDE вы пользуетесь?
41.89% Vim31
18.92% Emacs14
24.32% IDE от JetBrains (IDEA, GoLand, WebStorm, Pycharm)18
40.54% VS Code (или Cursor IDE)30
17.57% Notepad++13
10.81% Visual Studio IDE8
5.41% Свой вариант4
Проголосовали 74 пользователя. Воздержались 6 пользователей.
Теги:
Хабы:
+6
Комментарии11

Публикации

Истории

Ближайшие события

11 – 13 февраля
Epic Telegram Conference
Онлайн
27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань