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

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


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

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

Ответ 3

Vim:

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

Emacs:

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

Я начал с 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 был единственным доступным редактором.

Ответ 9

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

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

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

Ответ 10

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

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

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

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

Ответ 11

Для меня плюсы emacs есть,

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

Ответ 12

Об обоих редакторах сказано много, но мне нужно добавить 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

ИЛИ

:%!jq .path.to.stuff

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

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

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

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

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

Ответ 13

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

Ответ 14

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

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

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

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

Что я действительно хочу выделить здесь: " Многие считают, что важно знать как.

Ответ 15

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

Как сказано,

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

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

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

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


(источник: spacemacs.org)

Ответ 16

Преимущества 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 (Do What я Mean), программным образом реагируя на прошлые действия и состояние документа. Например, команда 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.
  • Системы аварийного восстановления системы, встроенные системы (особенно те, у которых есть busybox) и другие ограниченные среды, часто включают vi, но не emacs.

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

Ответ 17

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

Ответ 18

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

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

Ответ 19

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

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

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

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

Ответ 20

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

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

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

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

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

Ответ 21

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

Ответ 22

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

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

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

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

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

Ответ 23

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

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

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

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

Ответ 24

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

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

Ответ 25

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

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

Ответ 26

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

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

Ответ 27

Я поклонник Emacs, но рекомендую другим разработчикам изучить VI, потому что:

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

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

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

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

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

Ответ 28

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

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

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

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

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

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

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

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

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

Ответ 29

Сначала я пользовался vim, затем переключился на emacs, затем на vim, теперь я снова экспериментирую с emacs.

  • Оба великолепные редакторы.
  • Оба очень расширяемы сегодня
  • У обоих есть отличные плагины и сообщество

Как разработчики, мы много печатаем, и, наконец, для меня перемещение в буферах и файлах - самая большая повторяющаяся задача, поэтому мне нужен редактор, в котором я МОГУ БЫСТРОЕ ПЕРЕМЕЩЕНИЕ!

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

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

В emacs нет режима, в основном вы нажимаете Ctrl розовым цветом и нажимаете клавишу C-x C-f, C-x C-s, C-x C-c. Есть комбинации клавиш, где вам нужно отпустить клавишу Ctrl, я ненавижу эти и всегда заменяю их на нажатые клавиши управления.

Я думаю, что подход emacs быстрее думать и печатать, но у vim есть и другая сила. Его команды являются составными, они обычно имеют формат. Например, чтобы удалить строку, вы можете использовать dd, чтобы удалить слово dw. Плагины используют этот сруб, с помощью плагина vim -round вы можете удалять цитаты с помощью ds "(delete Surround"), удалять до следующего /dt/. Удалить до предыдущего /: dT/ и так далее. Так что, пока вы учитесь, движущиеся вещи начинают становиться очень интересными.

Подводя итог, сегодня я понял, что привязки клавиш в emacs быстрее для редактирования макросов, а команды vim более эффективны для микроредактирования

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

В качестве заключительной цитаты я бы сказал, что меня больше волнует fzf, чем emacs или vim, я хотел бы иметь редактор, полностью основанный на fzf

Ответ 30

Во-первых, Vi (оригинальная реализация) не используется сегодня. То, что вы говорите, является деривацией Vim.

Чтобы расширить функциональность Vim, вы должны перекомпилировать Vim, Emacs не.

Emacs имеет Vim в себе (viper-mode).

Emacs обычно требует ручной установки, Vim обычно предустанавливается на всех Unix-подобных ОС (но если у вас есть доступ ssh к хосту tramp-mode win Vim:).

Если вы попробуете Vim, вы ненавидите Emacs, поэтому сначала начните с Emacs.

Также читайте http://www.dina.dk/~abraham/religion/vi-tutorial.html (ссылка идет вниз, поэтому используйте это)

Поиск Anwer в hxxp://en.wikipedia.org/wiki/Editor_war