it-swarm.com.ru

Различия между Emacs и Vim

Не вдаваясь в религиозные споры о том, почему одно лучше другого, каковы практические различия между Emacs и Vim? Я хочу изучать одно или другое, но я понимаю, что кривая обучения для каждого высока, и я не могу решить. Я никогда не использовал редактор такого типа (я всегда использовал IDE), поэтому все, что помогает новичку, является плюсом.


Перед началом пламенной войны: я не спрашиваю, что лучше, я спрашиваю различия между ними. Я бы хотел объективное сравнение.

647
Sasha Chedygov

(текст ниже - мое мнение, его не следует воспринимать как факт или оскорбление)

Предполагается, что с Emacs он будет открыт 24 часа в сутки, 7 дней в неделю и внутри программы, практически все, что вы делаете, может быть сделано оттуда. Вы пишете свои собственные расширения, используете их для ведения заметок, организации, игр, программирования, доступа к оболочке, доступа к файлам, прослушивания музыки, просмотра веб-страниц. Потребуются недели и недели, пока вы будете счастливы с этим, а затем вы будете постоянно учиться новому. Вы будете раздражены, когда у вас нет доступа к нему и постоянно меняете свой конфиг. Вы не сможете легко использовать версии Emacs других людей, и они не будут просто установлены. Он использует LISP, и это здорово. Вы можете превратить это во что угодно. (вообще ничего)

С Vim он почти всегда предустановлен. Это быстро. Вы открываете файл, делаете быстрое редактирование и затем выходите. Вы можете работать с базовой настройкой, если вы находитесь на чужой машине. Это не совсем так редактируемо, но все же намного лучше, чем большинство текстовых редакторов. Он распознает, что большую часть времени вы читаете/редактируете, а не печатаете, и ускоряет эту часть. Вы не страдаете от emacs pinkie. Это не так бесит. Это легче учиться.

Несмотря на то, что я использую Emacs весь день каждый день (и мне это нравится), если вы не собираетесь тратить много времени на выбранную вами программу, я бы выбрал vim

456
James Brooks

Вим не Шелл. И это плохо связывается с подпроцессами. Это почти по замыслу, тогда как в Emacs эти элементы включены по замыслу. Это означает, что некоторые вещи, такие как встраивание отладчика или интерпретатора (в результате чего-то вроде IDE), сложны в Vim.

Кроме того, ярлыки Emacs доступны в основном через модификаторы, и, очевидно, интерфейс Vim является модально модным, предоставляя доступ к абсурдному количеству прямых ключей для манипуляции.

Раньше Emacs был единственным редактором, который был программируемым, и, хотя Vim имеет много странных уровней в своей программируемости, с добавлением привязок Python и ​​Ruby (и других , Я забыл), Vim также программируется в большинстве случаев, которые вам нужны.

Я использую Vim, и я довольно доволен этим.

129
Svend

Вим:

  • лучше как простой редактор (для простых задач требуется меньше ключей)
  • более активное сообщество сценаристов - внутренний язык: vimscript
  • один центральный репозиторий скриптов, плагинов, цветовых схем, ...
  • также расширяемый в Python, Ruby
  • можно сделать переносимым (с этим у emacs есть некоторые проблемы)

Emacs:

  • по умолчанию не модальный (большинство современных редакторов выбрали этот подход). Хотя есть режим зла , который подражает поведению vim.
  • более мощный язык для его расширения (elisp - полноценный язык, и в emacs вы можете практически все переопределить; в vim вы не можете переопределить встроенные функции редактора. С другой стороны, vimscript относительно похож на современные динамические языки, в то время как elisp не очень похоже на что-либо)
  • более расширяемый
  • отличная поддержка инструментов GNU (куча из них)

Лично я предпочитаю vim - он маленький, делает то, что должен делать, и когда я желаю полноценного IDE, я открываю VS. Подход Emacs быть редактором, который хочет быть IDE (или, я бы сказал, ОС), но не совсем, IMHO, устарел. В прежние времена наличие почтового клиента, ftp-клиента, тетриса ... чего-то еще в одном пакете (emacs) имело некоторый смысл ... в настоящее время этого больше нет.

Однако оба они являются темой религиозных дискуссий среди программистов и пользователей сообщества суперпользователей, и в этом отношении оба превосходны для начала пламенных войн, если вступают в контакт (в одном предложении/вопросе).

102
Rook

Если вы ищете объективный анализ обоих редакторов, посмотрите на их происхождение и философию их соответствующих проектов. Подумайте, какой из них вам больше подходит, и выучите его (и выучите его, и выучите его, потому что прежде чем вы обнаружите его истинную полезность по сравнению с любой IDE, требуется время). Введение в редактирование отображения с помощью Vi было написано Биллом Джоем и Марком Хортоном, и он объясняет, почему он выбирает модальный дизайн и обоснование для различных нажатий клавиш (это помогает мне помнить, что CTRL-W + W (будет Переключитесь на следующий W indow, и это будет то же самое для CTRL W + CTRL W, на тот случай, если вы удерживали клавишу CTRL в течение более длительного времени.

Вот ссылка на временная шкала Emacs и ссылка на статью Multics Emacs. Здесь RMS статья о Emacs , где я вижу упор на программируемый текстовый редактор (даже в 1981 году и ранее).

Я не читал газеты Emacs, но пару раз читал газету Билла Джоя. Оба старые, но все же вы получите философию, и вы можете использовать текущий инструмент (vim 7.x или emacs 25?)

Редактировать: Я забыл упомянуть, что требуется терпение и воображение, чтобы прочитать обе эти статьи, поскольку это уносит вас назад во времени при чтении. Но это того стоит.

47
Senthil Kumaran
  1. Vim всегда запускался быстрее, чем Emacs. Я говорю о том, что на любой машине установка Vim из коробки начнется быстрее, чем установка Emacs из коробки. И я склонен думать, что после небольшого количества настроек Vim по-прежнему будет запускаться быстрее, чем Emacs.

  2. После этого другим практическим отличием были моды Emacs. Они значительно упрощают вашу жизнь при редактировании XML, C/C++/Java/чего угодно, LaTeX и самых популярных языков, о которых вы только можете подумать. Они заставляют вас хотеть держать редактор открытым для долгих сессий и работы.

В общем, я скажу, что Vim привлекает вас к коротким, быстрым задачам редактирования; в то время как Emacs предлагает вам погрузиться в долгие сессии.

43
Yawar

VI всегда доступен и будет работать в наиболее урезанном однопользовательском режиме, с испорченной графикой, без клавиатуры, с медленной связью - так что стоит знать, как редактировать в нем простые файлы только для задач sysadmin.

Emacs - это полноценный пользовательский интерфейс в редакторе. Идея состоит в том, что вы запускаете Emacs при запуске машины и никогда не покидаете ее. Можно присутствовать тысячи сессий.

Стоит ли изучать возможности Emacs по сравнению с использованием графического редактора/IDE и использованием чего-то вроде python/awk/etc для дополнительных задач - решать вам.

38
Martin Beckett

Я полноценный фанат Emacs, но я знал VI задолго до того, как знал Emacs. Тем не менее, я заставляю всех своих людей изучать VI, потому что он всегда доступен, везде. Не могу ошибиться ни с одним из них.

24
Joe Casadonte

Я начал с vi, пошел в emacs, затем в vim. Я думал попробовать Emacs, чтобы увидеть, что изменилось за последние пять лет. (Говоря об IDE, я некоторое время заходил в Eclipse, но я предпочитаю окно терминала, соединяющее мой mac с моим (мужем) linux box).

Эта штуковина в последнее время беспокоит меня. Вырезать и вставлять в Vim нужно больше шагов, чем в Emacs, IIRC. И вставка из, скажем, браузера в окно терминала раздражает, если вы не делаете что-то необычное, что мне не хочется делать, поэтому я смирился со странным отступом. Я думаю, редактирование нескольких файлов в Emacs было проще. По крайней мере, переходите от одного файла к другому, если они оба находятся на экране.

Я не играл с необычными функциями vi или emacs, так как мне просто нравится заниматься программированием. Все, что мне нужно, это красивые цвета и правильное преобразование табуляции в пространство (особенно важно для Python).

Я думаю, что все зависит от того, хотите ли вы использовать :wq или Ctrl-x Ctrl-s (IIRC) для сохранения файла, если вас не интересуют причудливые вещи.

@mgb было правильно. Я был в минимуме Linux, чтобы исправить что-то месяц или два назад в дистрибутиве Debian. vi был единственным доступным редактором.

13
Elizabeth Buckwalter

Кажется, ответ уже выбран, но большая разница для меня всегда была модальной и немодальной. Vim является модальным, что означает, что он выполняет оптимизацию на основе определенного набора режимов использования. По крайней мере, так я всегда смотрел на это. Это делает использование Vim другим, потому что вместо рабочей области, в которой вы вводите код, вы действительно указываете среде действовать на текст. Вот почему люди говорят, что с Vim вы действительно изучаете язык. Все: wq и: s/foo/bar являются частью оболочки, похожей на оболочку, которая редактирует и читает текст.

Emacs, с другой стороны, намного ближе к большинству редакторов/текстовых процессоров/и т.д. ты видишь сегодня. У вас есть рабочее пространство с высоко программируемым интерфейсом. Вот почему вы видите такие вещи, как электронная почта, irc, оболочки и т.д. Как программисту легко представить себе слова: "Возьми номер строки, на которой я сейчас, и сделай что-нибудь с информацией". Желание покинуть редактор становится меньше, потому что вместо того, чтобы выходить, открывать какое-то другое приложение/язык и делать что-то с текстом, у вас есть Emacs, где вы можете делать эти вещи в рамках вашего редактора.

Эти две идеи не обязательно противоречат друг другу, просто они раскрывают два разных направления. Лично я использую Emacs, но я видел людей, которые действительно хорошо знают Vim и могут честно сказать, что не имеет значения, какой вы выберете. Сначала я попробовал Vim, но Emacs продолжал придерживаться меня. Это правда, что независимо от того, что вы выбираете, вы должны быть хотя бы в некоторой степени опытными в Vim, так как он действительно всегда доступен.

12
elarson

Об обоих редакторах сказано много, но мне нужно добавить 5 пенсов. Оба редактора замечательны, и вы не ошибетесь ни с одним из них.

Я пользуюсь vi/vim уже около 15 лет. Я пытался конвертировать в emacs несколько раз, но каждый раз обнаруживал, что vim действительно может сделать недостающую вещь из коробки без необходимости писать расширение LISP или что-то устанавливать.

Для меня главное отличие редакторов в том, что vim заставляет вас использовать окружение/ОС, в то время как emacs пытается инкапсулировать или заменить его. Например, вы можете добавить дату в тексте как: r! Date в vim, или календарь с помощью: r! Cal 1 2014, или даже заменить содержимое вашего буфера шестнадцатеричной версией содержимого. Например. :%! xxd, отредактируйте hex, а затем вернитесь с:%! xxd -r и многими другими, например, встроенными grep, sed и т. д.

Другой пример - использование с jq и gron. Например. вставьте json blob в редактор и запустите для преобразования:

:r!curl -s http://interesting/api/v1/get/stuff
:%!gron | grep 'interesting' | gron -u

OR

:%!jq .path.to.stuff

Каждая из вышеперечисленных команд может быть запущена отдельно через :%!<command>, где % означает весь документ, но также может выполняться при выделении, выделенных строках и т.д. Здесь gron output можно использовать как путь jq.

Вы также получаете функциональность пакетного редактирования EX, например. Замена определенных слов, переформатирование кода, преобразование символов новой строки dos-> unix, запуск макроса, скажем, для 100 файлов одновременно. Это легко сделать с экс. Я не уверен, что в emacs есть что-то подобное.

Другими словами, IMHO vim подходит ближе к философии Unix. Как правило, он проще и меньше, но если вы знаете свою ОС и инструменты, вам, скорее всего, не понадобится больше, чем она может предложить (VIM). Я никогда не делаю.

Кроме того, vi является стандартом де-факто в любой системе Unix/Linux, зачем учиться использовать 2 инструмента, которые делают то же самое. Конечно, некоторые системы предлагают мг или что-то подобное, но определенно не все из них. Unix + Vi <3.

Ну, только мои 5 пенсов.

10
Alex

Для меня плюсы Emacs,

  • tramp-mode позволяет редактировать удаленные файлы через ssh. так же, как локальные файлы.
  • tramp-mode + dired = полнофункциональный клиент sftp
  • поддержка каждого языка, который вам когда-либо понадобится.
  • встроенный эмулятор терминала (term-mode), поэтому я могу сохранять кодирование без переключения между приложениями.
  • расширяемость все, что вам не нравится, вы можете изменить с помощью LISP.
9
Hamza Yerlikaya

На повседневном уровне есть огромная разница - Vim (или любой другой вариант vi) по своей природе модальный (вы переходите в командные режимы, где вы не можете редактировать) и Emacs (вместе с большинством других редакторов) ) не.

Конечно, используя меню и тому подобное, вам не нужно фактически вводить командный режим в Vim - сначала. Но использовать даже крошечную долю силы Vim вы будете. Это лежит в основе дебатов о Vim/Emacs.

Лично я также считаю, что Emacs гораздо более расширяем. Вы можете найти пакеты Elisp для многих вещей.

Мне любопытно, однако, почему вы думаете изучить один из них на более традиционной IDE. Для чего ты хочешь научиться одному из них?

9
Kendall Helmstetter Gelner

Я хотел бы привести цитату из книги "Искусство программирования в UNIX":

Многие люди, которые регулярно используют и vi, и Emacs, склонны использовать их для разных целей, и им полезно знать и то, и другое.

В общем, vi лучше всего подходит для небольших работ - быстрых ответов на почту, простых настроек конфигурации системы и т. П. Это особенно полезно, когда вы используете новую систему (или удаленную по сети) и не имеете удобных файлов настроек Emacs.

Emacs имеет свои собственные возможности для расширенных сеансов редактирования, в которых вам приходится обрабатывать сложные задачи, изменять несколько файлов и использовать результаты других программ во время сеанса. Для программистов, использующих X на своей консоли (что типично для современных Unixes), нормально запускать Emacs вскоре после времени входа в систему в большом окне и оставлять его работать вечно, возможно, посещая десятки файлов и даже запуская программы в нескольких под окнах Emacs.

Здесь я действительно хочу подчеркнуть следующее: "Многие люди считают полезным знать оба."

8
Andrey Tykhonov

Преимущества Emacs

  • Emacs имеет как немодальный интерфейс (по умолчанию), так и модальный (например, он может эмулировать vim и vi через Evil, Viper или Vimpulse).

  • Одна из самых портированных компьютерных программ. Он работает в текстовом режиме и под графическим интерфейсом пользователя в самых разных операционных системах, включая большинство Unix-подобных систем (Linux, различные BSD, Solaris, AIX, IRIX, macOSetc.), MS-DOS, Microsoft Windows, AmigaOS, и OpenVMS. Системы Unix, как бесплатные, так и проприетарные, часто предоставляют Emacs в комплекте с операционной системой.

  • Архитектура сервера Emacs позволяет нескольким клиентам подключаться к одному и тому же экземпляру Emacs и совместно использовать список буферов, список уничтожений, историю отмен и другие состояния.

  • Распространенная интерактивная справочная система с привязками клавиш, функциями и командами, документированными на лету.

  • Расширяемый и настраиваемый вариант языка программирования LISP (Emacs LISP) с функциями, которые включают в себя:

  • Мощный и расширяемый файловый менеджер (dired), встроенный отладчик, а также большой набор средств разработки и других инструментов.

  • Наличие каждой команды как функции Emacs LISP позволяет командам DWIM (делать то, что я имею в виду), программно реагируя на прошлые действия и состояние документа. Например, команда switch-or-split-window может переключиться на другое окно, если оно существует, или создать его при необходимости. Это сокращает количество нажатий клавиш и команд, которые пользователь должен запомнить.

  • "ОС внутри ОС". Emacs LISP позволяет программировать Emacs далеко за пределы возможностей редактирования. Даже базовая установка содержит несколько десятков приложений, в том числе два веб-браузера, программы чтения новостей, несколько почтовых агентов, четыре IRC клиента, версию ELIZA и множество игр. Все эти приложения доступны везде, где работает Emacs, с одинаковым пользовательским интерфейсом и функциональностью. Начиная с версии 24, Emacs включает в себя менеджер пакетов, что упрощает установку дополнительных приложений, включая альтернативные веб-браузеры, EMMS (Emacs Multimedia System) и многое другое. Также доступны многочисленные пакеты для программирования, включая некоторые, предназначенные для определенных комбинаций языка/библиотеки или стилей кодирования.

Преимущества vi-подобных редакторов

  • Команды редактирования являются составными
  • Vi имеет модальный интерфейс (который Emacs может эмулировать)
  • Исторически, vi загружается быстрее, чем Emacs.
  • Хотя он тесно связан с традицией UNIX, он работает на всех системах, которые могут реализовать стандартную библиотеку C, включая UNIX, Linux, AmigaOS, DOS, Windows, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD и POSIX-совместимые. системы.
  • Расширяемый и настраиваемый с помощью скрипта Vim или API для интерпретируемых языков, таких как Python, Ruby, Perl и Lua
  • Повсеместный. По сути, все Unix и Unix-подобные системы поставляются со встроенным vi (или его вариантом). Vi (и ex, но не vim) указывается в стандарте POSIX.
  • Среды восстановления системы, встроенные системы (особенно с занятой коробкой) и другие ограниченные среды часто включают в себя vi, но не emacs.

Источник: https://en.wikipedia.org/wiki/Editor_war

8
artamonovdev

Для меня в emacs есть лучшие инструменты разработки (не только инструменты на основе тегов).

8
bmeric

Теперь вам даже не нужно думать о разнице между этими двумя из-за Spacemacs . Это управляемый сообществом дистрибутив Emacs.

Как сказано,

Лучший редактор - это ни Emacs, ни vim, это Emacs и Vim.

Spacemacs сочетает в себе лучшее из Emacs и Vim, что значительно облегчает вашу жизнь и работу.

Он также имеет приличный логотип.

Смотрите скриншот ниже,

http://spacemacs.org/doc/img/spacemacs-python.png

8
Xinyang Li

Самым большим отличием для меня при выборе emacs над vim была встроенная поддержка gdb в emacs. Vim не включил это в свой дистрибутив по умолчанию, и проект по интеграции gdb и vim был почти невозможен для работы с MacVim.

5
Grant Limberg

В Emacs есть режим viper, поэтому в некотором смысле он предоставляет расширенный набор функций (за исключением описанных в Какие функции Vim отсутствуют в Emacs с Viper и Vimpulse? ).

vi (и VIM IIRC) имеет меньший вес (он может редактировать файлы на месте), но предлагает меньше функций (взаимодействие подпроцесса, язык расширения).

5
Trey Jackson

Это как яблоки и апельсины. Оба имеют разный дизайн и философию. Vim - это текстовый редактор, а Emacs - интерпретатор LISP, который выполняет редактирование текста.

Я использую Vim, потому что он быстрый, изящный и действительно хорош в манипулировании текстами. Он имеет составную естественную привязку ключа, которая может сделать ваши задачи разработки действительно гармоничными. Vim основан на простой * nix philiosphy, делающей одну вещь действительно хорошо - то есть манипулирование текстом.

Расширение Vim с использованием bash/zsh и tmux обычно легко и позволяет многому научиться. ИМХО это хорошая кривая обучения. Главное - научиться интегрировать эти вещи, чтобы получить большее работающее приложение. С Vim вам нужно изучить интеграцию, потому что она не интегрируется естественным образом, если вы не скажете, как это сделать. Еще одно стоящее расширение, которое я использую, это Tig. Это основанный на ncurses интерфейс Git. У меня просто есть привязка, которая молча открывает Tig, а затем я делаю там все Git.

Это до конечного пользователя, чтобы решить, что работает лучше всего. То, что Emacs и Vim выдержали испытание временем, является доказательством их достоинства. В конце концов, хорошему программисту для творчества нужны только ручка и бумага. Хорошие алгоритмы не нуждаются в редакторах, чтобы поддержать их. Попробуйте оба и посмотрите, что делает вас более продуктивным. И изучите шаблоны проектирования от этих двух программ, поскольку есть много, чтобы изучить и обнаружить!

4
Nishant

Желтучая точка зрения:

vi (не vim) - это профессиональная необходимость. У вас всегда есть какая-то легко доступная форма vi, независимо от среды. Вы можете быть в vi, когда находитесь в emacs, вы можете быть в vi, чтобы создавать команды bash в unix-land.

Даже Microsquish должен поддерживать vi (хотя они и умеют скрывать его) из-за государственного и корпоративного соответствия опубликованным стандартам.

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

Прочитайте статью Билла Джоя - это очень компетентное, возможно, даже красивое, инженерное упражнение по редактированию простого текста очень, очень быстро. Здесь действует правило Парито: 80% фруктов находится в 20% корзин. Редактирование простого текста очень и очень быстро - суть компетенции в редактировании - все остальное необязательно - и иногда вредно.

3
user3305072

Emacs - это скорее программа do everything, а vi (m) - просто редактор. Если вы редактируете текст, они оба хороши, но я предпочитаю emacs просто потому, что мне нужно сдвинуть одну строку с домашнего ряда, чтобы перемещаться, и продолжать вводить неправильные вещи в командном режиме. Если у вас нет этой проблемы, vi (m) может быть редактором для вас.

2
qwertyuiop924

Если вы много перемещаетесь с сайта на сайт или ваша работа связана с входом в производственные системы, тогда vim - это то, что вам нужно.

На всех машинах * nix vi будет установлена ​​по умолчанию.

Большинство системных администраторов предпочитают ksh в качестве оболочки по умолчанию. ksh использует комбинации клавиш vi (или emacs) для поиска в истории и редактирования командной строки.

Если вы плохо знаете vi, у вас серьезные недостатки, когда вы входите в окно Unix со стандартной конфигурацией.

Только по этой причине я бы порекомендовал vim в качестве вашего обычного редактора на каждый день. Я видел фанатов emacs, которые пытались изменить конфигурационные файлы на сервере unix.

1
James Anderson

vim это удобный редактор, вы просто набираете vim filename, чтобы открыть файл, отредактировать, сохранить и закрыть.

emacs - это "операционная система", претендующая на роль редактора, вы можете eval код, чтобы изменить его поведение и расширить его по своему усмотрению. mode для получения/отправки электронной почты на emacs подобен программному обеспечению для работы с электронной почтой в операционной системе.

При простом редактировании, например, для изменения файла конфигурации, я использую vim.

В противном случае я никогда не уйду emacs.

1
Richard

Я думаю, что основным отличием является цель дизайна. VIM для UNIX в качестве рабочего редактора. Emacs предназначен для хакеров GNU и ​​LISP, так что он имеет некоторый смешанный элемент дизайна.

Я использую vim на своей рабочей станции, а также люблю emacs.

0
7xEquation

В своем вопросе вы не упомянули, что хотите, чтобы он программировался в LISP! Но когда вы комментировали свои ответы, я понял, что вам действительно нужен интерфейс программирования LISP.

Для этого точного задания просто забудьте о Vi. Интеграция Emacs с LISP замечательна! Вы должны использовать SLIME. Тогда у вас будет прекрасная интеграция с REPL, и вы сможете eval выполнять функции, буферы или файлы непосредственно в работающий интерпретатор в буфере emacs и многое другое ...

0
Pedro Morte Rolo

Я работал с spacemacs около 2 лет и neovim уже около года в производственной/исследовательской среде. Spacemacs - это emacs с несколькими дополнительными функциями Nice, такими как слои и т.д. И neovim снова является форком vim с некоторыми дополнительными функциями.

Я совершенно недоволен ими обоими с точки зрения опыта. И я все еще ищу долгосрочное решение для моих потребностей в редактировании текста.

Вот простое сравнение:

  • Neovim, vim, emacs, spacemacs и т.д. Все эти редакторы потребляют меньше ресурсов по сравнению с большинством редакторов.

  • Neovim/vim немного быстрее, чем emacs, заметно быстрее, чем spacemacs.

  • С точки зрения опыта редактирования. Я легко могу сказать, что пакеты emacs чувствуют себя превосходящими. Я думаю, это потому, что они лучше сочетаются с ядром Emacs.

  • Vimscript - это Ницца, и в экосистеме vim, безусловно, есть отличные проекты. Хорошо, что они лучше задокументированы, чем большинство проектов emacs, которые я видел до сих пор.

  • Оба могут быть затруднены в зависимости от пакета, который вы используете. Spacemacs, как правило, зависает, а neovim, как правило, отображает страшные сообщения об ошибках, так что выбирайте яд там.

  • Модальное редактирование в vim не является интуитивно понятным понятием, но как только вы привыкнете к нему, вы захотите его в любом случае. Оба редактора предоставляют это.

0
Kaan E.

Я фанат Emacs, но призываю других разработчиков изучать VI, потому что:

  1. вы можете использовать VI для редактирования make-файлов emacs.
  2. VI включает команды ed, и каждый пользователь UNIX должен знать ed и sed.

Я заметил несколько комментариев о том, что VIM запускается быстрее, чем emacs. Если вас это действительно волнует, запустите emacs в режиме сервера и введите псевдоним 'emacs' в 'emacsclient'. Клиент работает очень быстро, поскольку все, что он делает, - это нажимает на сервер по плечу и сообщает ему, какой файл вы хотите редактировать. В MacOSX emacsclient составляет всего 33K, а emacs - 287M.

Я не уверен, что все это необходимо на современном оборудовании. На моем MacBook Pro (Retina 2013) emacs загружается почти мгновенно, когда я запускаю его из командной консоли. Я не вижу никакой паузы вообще. Когда я запускаю Emacs.app (версия с графическим интерфейсом), это может занять все 3 секунды.

Большинство жалоб, которые я слышу о emacs, похоже, поступают от людей, дезинформированных о emacs. Используя 1982 и vi, и emacs с 1982 года, я точно помню время, когда emacs загружался намного медленнее, чем vi, и использовал большую часть физической памяти в моих ранних версиях UNIX, но это уже не так и не было по крайней мере 15- 20 лет.

Одна жалоба, которую я должен признать, это "Emacs Pinkie". Это никогда не беспокоило меня, когда я был моложе. Теперь, когда мне 58, мой мизинец немного болит от многократного доступа к клавише Control для записи emacs. Это особенно верно для клавиатуры MacBook Pro, где Control перемещается на одну позицию вправо, чтобы освободить место для клавиши "fn". Это не так раздражает, когда Control - нижняя левая клавиша.

0
Phil Harbison

Выполнение нажатия клавиши ::: редактирование vi сохраняет каждую перестановку набранных ключей. Это создает путь в дереве решений, который однозначно идентифицирует любую команду, в то время как команды Emacs представляют собой комбинацию типизированных ключей, выполняемых немедленно, что оставляет пользователю выбор, использовать ли команду или нет.

Использование памяти и настраиваемость ::: vi - это небольшая и более быстрая программа с более ограниченными возможностями для настройки, тогда как Emacs требует больше времени для запуска и требует больше памяти. Тем не менее, он очень настраиваемый и включает в себя большое количество функций, так как по сути это среда выполнения для программы LISP, предназначенной для редактирования текста.

0
Sudhir Bastakoti