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

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

647 голосов
/ 16 сентября 2009

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


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

Ответы [ 29 ]

2 голосов
/ 19 января 2014

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

1 голос
/ 17 августа 2010

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

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

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

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

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

1 голос
/ 11 августа 2013

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

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

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

Иначе я никогда не покину emacs .

0 голосов
/ 12 марта 2019

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

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

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

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

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

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

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

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

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

0 голосов
/ 15 июня 2018

Я фанат 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. Я использовал vi и emacs с 1982 г. 20 лет.

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

0 голосов
/ 16 сентября 2009

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

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

Emacs имеет Vim в себе (режим viper).

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

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

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

Поиск ответа в hxxp: //en.wikipedia.org/wiki/Editor_war

0 голосов
/ 27 октября 2014

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

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

0 голосов
/ 22 апреля 2011

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

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

0 голосов
/ 04 декабря 2011

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

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

...