Не вдаваясь в религиозные споры о том, почему одно лучше другого, каковы практические различия между Emacs и Vim? Я хочу изучать одно или другое, но я понимаю, что кривая обучения для каждого высока, и я не могу решить. Я никогда не использовал редактор такого типа (я всегда использовал IDE), поэтому все, что помогает новичку, является плюсом.
Перед началом пламенной войны: я не спрашиваю, что лучше, я спрашиваю различия между ними. Я хотел бы объективное сравнение.
,salespitch
говорится в #emacs<fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.
PAGER=cat man
тогда человек выведет текст прямо на экран.i, esc, wq
.Ответы:
(текст ниже - мое мнение, его не следует воспринимать как факт или оскорбление)
Предполагается, что с Emacs он будет открыт 24 часа в сутки, 7 дней в неделю и внутри программы, практически все, что вы делаете, может быть сделано оттуда. Вы пишете свои собственные расширения, используете их для ведения заметок, организации, игр, программирования, доступа к оболочке, доступа к файлам, прослушивания музыки, просмотра веб-страниц. Потребуются недели и недели, пока вы будете счастливы с этим, а затем вы будете постоянно учиться новому. Вы будете раздражены, когда у вас нет доступа к нему и постоянно меняете свой конфиг. Вы не сможете легко использовать версии Emacs других людей, и они не будут просто установлены. Он использует Лисп, и это здорово. Вы можете превратить его во что угодно. (что-нибудь вообще)
С Vim он почти всегда предустановлен. Это быстро. Вы открываете файл, делаете быстрое редактирование и затем выходите. Вы можете работать с базовой настройкой, если вы находитесь на чужой машине. Это не совсем так редактируемо, но все же намного лучше, чем большинство текстовых редакторов. Он распознает, что большую часть времени вы читаете / редактируете, а не печатаете, и ускоряет эту часть. Вы не страдаете от Emacs Pinkie . Это не так бесит. Это легче учиться.
Несмотря на то, что я использую Emacs весь день каждый день (и мне это нравится), если вы не собираетесь проводить много времени в выбранной вами программе, я бы выбрал vim
источник
vi
а неvim
навязанный этому.ssh
подключении к другим машинам. Вот почему я узнал об этом первым, потому что мои друзья знали VIM и могли мне помочь. (НеВим не оболочка. И это плохо связывается с подпроцессами. Это почти по замыслу, тогда как в Emacs эти элементы включены по замыслу. Это означает, что некоторые вещи, такие как встраивание отладчика или интерпретатора (в результате чего-то вроде IDE), сложны в Vim.
Кроме того, ярлыки Emacs доступны в основном через модификаторы, и, очевидно, интерфейс Vim является модально модным, предоставляя доступ к абсурдному количеству прямых ключей для манипуляции.
Раньше Emacs был единственным редактором, который был программируемым, и, хотя Vim имеет много странных уровней в своей программируемости, с добавлением привязок Python и Ruby (и больше, я забыл), Vim также программируется в большинстве случаев. вы бы позаботились о.
Я использую Vim, и я довольно доволен этим.
источник
Vim:
Emacs:
Лично я предпочитаю vim - он маленький, делает то, что должен, и когда я желаю полноценной IDE, я открываю VS. Подход Emacs быть редактором, который хочет быть IDE (или, я бы сказал, ОС), но не совсем, IMHO, устарел. В прежние времена наличие почтового клиента, ftp-клиента, тетриса ... чего-то еще в одном пакете (emacs) имело какой-то смысл ... в настоящее время его уже нет.
Однако оба они являются темой религиозных дискуссий среди программистов и пользователей сообщества суперпользователей, и в этом отношении оба превосходны для начала пламенных войн, если вступают в контакт (в одном предложении / вопросе).
источник
Если вы ищете объективный анализ обоих редакторов, посмотрите на их происхождение и философию их соответствующих проектов. Подумайте, какой из них вам больше подходит, и выучите его (и выучите его, и выучите его, потому что прежде чем вы обнаружите его истинную полезность по сравнению с любой IDE, требуется время). Введение Дисплей Редактирование с Vi была написана Билл Джой и Марк Хортон , и он объясняет , почему он выбрал модальный дизайн и обоснование для различных ключевых ударов (это помогает мне помнить , что CTRL-W + W (перейдет к следующему W indow и ему будет таким же для CTRL W + CTRL W, на тот случай, если вы удерживали клавишу CTRL в течение более длительного времени.
Вот ссылка на временную шкалу Emacs и ссылка на статью Multics Emacs. Вот документ RMS по Emacs , где я вижу упор на программируемый текстовый редактор (даже в 1981 году и ранее).
Я не читал газеты Emacs, но пару раз читал газету Билла Джоя. Оба старые, но все же вы получите философию, и вы можете использовать текущий инструмент (vim 7.x или emacs 25?)
Редактировать: я забыл упомянуть, что требуется терпение и воображение, чтобы прочитать обе эти статьи, поскольку это уносит вас назад во времени при чтении. Но это того стоит.
источник
Vim всегда запускался быстрее, чем Emacs. Я говорю о том, что на любой машине установка Vim из коробки будет запускаться быстрее, чем установка Emacs из коробки. И я склонен думать, что после небольшого количества настроек Vim все равно будет запускаться быстрее, чем Emacs.
После этого другим практическим отличием были моды Emacs. Они значительно упрощают вашу жизнь при редактировании XML, C / C ++ / Java / чего угодно, LaTeX и самых популярных языков, о которых вы только можете подумать. Они заставляют вас хотеть держать редактор открытым для долгих сессий и работы.
В общем, я скажу, что Vim привлекает вас к коротким, быстрым задачам редактирования; в то время как Emacs предлагает вам погрузиться в долгие сессии.
источник
use-package
его:defer
опцией, мой Emacs открывается почти сразу. Я даже отказался от использования emacsclient.VI всегда доступен и будет работать в наиболее урезанном однопользовательском режиме, с испорченной графикой, без клавиатуры, с медленной связью - поэтому стоит знать, как редактировать в нем простые файлы только для задач sysadmin.
Emacs - это полноценный пользовательский интерфейс в редакторе. Идея состоит в том, что вы запускаете Emacs при запуске машины и никогда не покидаете ее. Можно присутствовать тысячи сессий.
Стоит ли изучать возможности Emacs по сравнению с использованием графического редактора / IDE и использованием чего-то вроде python / awk / etc для дополнительных задач - решать вам.
источник
ed
что это «всегда доступно и будет работать в наиболее ограниченном однопользовательском режиме, с испорченной графикой, без клавиатуры, с медленной связью». Подожди, какой это год? (Вздох -ed
я никогда тебя не забуду.)Я полноценный фанат Emacs, но я знал VI задолго до того, как знал Emacs. Тем не менее, я заставляю всех своих людей изучать VI, потому что он всегда доступен, везде. Не могу ошибиться ни с одним из них.
источник
Кажется, ответ уже выбран, но большая разница для меня всегда была модальной и немодальной. Vim является модальным, что означает, что он выполняет оптимизацию на основе определенного набора режимов использования. По крайней мере, так я всегда смотрел на это. Это делает использование Vim другим, потому что вместо рабочей области, в которой вы вводите код, вы действительно указываете среде действовать на текст. Вот почему люди говорят, что с Vim вы действительно изучаете язык. Все: wq и: s / foo / bar являются частью оболочки, похожей на среду, которая редактирует и читает текст.
Emacs, с другой стороны, гораздо ближе к большинству редакторов / текстовых процессоров / и т.д. ты видишь сегодня. У вас есть рабочее пространство с высоко программируемым интерфейсом. Вот почему вы видите такие вещи, как электронная почта, irc, оболочки и т. Д. Как программисту легко представить себе слова «возьми номер строки, на которой я сейчас, и что-то сделай с информацией». Желание покинуть редактор становится меньше, потому что вместо того, чтобы выходить, открывать какое-то другое приложение / язык и делать что-то с текстом, у вас есть Emacs, где вы можете делать эти вещи в рамках вашего редактора.
Эти две идеи не обязательно противоречат друг другу, просто они раскрывают два разных направления. Лично я использую Emacs, но я видел людей, которые действительно хорошо знают Vim и могут честно сказать, что не имеет значения, какой вы выберете. Сначала я попробовал Vim, но Emacs продолжал придерживаться меня. Это правда, что независимо от того, что вы выбираете, вы должны быть хотя бы в некоторой степени опытными в Vim, так как он действительно всегда доступен.
источник
Я начал с vi, пошел в emacs, затем в vim. Я думал о том, чтобы попробовать Emacs, чтобы увидеть, что изменилось за последние пять лет. (Говоря об IDE, я некоторое время находился в затмении, но я предпочитаю окно терминала, соединяющее мой mac с моим (мужем) linux box).
Эта штуковина в последнее время беспокоит меня. Вырезать и вставлять в Vim нужно больше шагов, чем в Emacs, IIRC. И вставка из, скажем, браузера в окно терминала раздражает, если вы не делаете что-то необычное, что мне не хочется делать, поэтому я смирился со странным отступом. Я думаю, редактирование нескольких файлов в Emacs было проще. По крайней мере, переходите от одного файла к другому, если они оба находятся на экране.
Я не играл с модными функциями ни vi, ни emacs, так как мне просто нравится заниматься программированием. Все, что мне нужно, это красивые цвета и правильное преобразование табуляции в пространство (особенно важно для Python).
Я думаю, что все зависит от того, хотите ли вы использовать
:wq
илиCtrl-x Ctrl-s
(IIRC) сохранить файл, если вас не волнуют причудливые вещи.@mgb было правильно. Я был в минимуме Linux, чтобы исправить что-то месяц или два назад в дистрибутиве Debian. vi был единственным доступным редактором.
источник
:set paste
, затем вставьте свой текст, и когда вы закончите:set nopaste
, вернитесь в нормальный режим. Существует также:set pastetoggle=<F2>
команда, которая будет переключать это, используя выбранную вами комбинацию клавиш.^R^P+
вставку из буфера обмена и сохранить текущий отступ.^R^O+
упадет отступ.^R+
вставит его так, как если бы вы его напечатали.:help i_^R^P
для получения дополнительной информации.yyp
. Кроме того, смотрите здесь, чтобы вырезать и вставлять в и из разных окон stackoverflow.com/a/8757876/654789На повседневном уровне есть огромная разница - Vim (или любой другой вариант vi) по своей природе модальный (вы переходите в командные режимы, где вы не можете редактировать), а Emacs (как и большинство других редакторов) - нет.
Конечно, используя меню и тому подобное, вам не нужно фактически вводить командный режим в Vim - сначала. Но использовать даже крошечную долю силы Vim вы будете. Это лежит в основе дебатов о Vim / Emacs.
Лично я также считаю, что Emacs гораздо более расширяем. Вы можете найти пакеты Elisp для многих вещей.
Мне любопытно, однако, почему вы думаете изучить один из них на более традиционной IDE. Для чего ты хочешь научиться одному из них?
источник
Об обоих редакторах сказано много, но мне нужно добавить 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 в редактор и запустите для преобразования:ИЛИ
Каждая из вышеприведенных команд может быть запущена отдельно через
:%!<command>
, где%
означает весь документ, но также может быть запущена на выделении, выбранных строках и т. Д. Здесь gronoutput
может использоваться какjq
путь.Вы также получаете функциональность пакетного редактирования EX, например. Замена определенных слов, переформатирование кода, преобразование символов новой строки dos-> unix, запуск макроса, скажем, для 100 файлов одновременно. Это легко сделать с экс. Я не уверен, что в emacs есть что-то подобное.
Другими словами, IMHO vim подходит ближе к философии Unix. Как правило, он проще и меньше, но если вы знаете свою ОС и свои инструменты, вам, скорее всего, не понадобится больше, чем она может предложить (VIM). Я никогда не делаю.
Кроме того, vi является стандартом де-факто в любой системе Unix / Linux, зачем учиться использовать 2 инструмента, которые делают то же самое. Конечно, некоторые системы предлагают мг или что-то подобное, но определенно не все из них. Unix + Vi <3.
Ну, просто мои 5 пенсов.
источник
Для меня плюсы Emacs,
источник
Для меня в emacs есть лучшие инструменты разработки (не только инструменты на основе тегов).
источник
Я хотел бы привести цитату из книги «Искусство программирования в UNIX»:
Здесь я хочу подчеркнуть следующее: « Многие люди считают полезным знать и то и другое ».
источник
Преимущества 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-подобных редакторов
Источник: https://en.wikipedia.org/wiki/Editor_war
источник
Теперь вам даже не нужно думать о разнице между этими двумя из-за Spacemacs . Это управляемый сообществом дистрибутив Emacs.
Как сказано,
Spacemacs сочетает в себе лучшее из Emacs и Vim, что значительно облегчает вашу жизнь и работу.
Смотрите скриншот ниже,
(источник: spacemacs.org )
источник
Самым большим отличием для меня при выборе emacs над vim была встроенная поддержка gdb в emacs. Vim не включил это в свой дистрибутив по умолчанию, и проект по интеграции gdb и vim был почти невозможен для работы с MacVim.
источник
Это как яблоки и апельсины. Оба имеют разный дизайн и философию. Vim - это текстовый редактор, а Emacs - интерпретатор Lisp, который выполняет редактирование текста.
Я использую Vim, потому что он быстрый, изящный и действительно хорош в манипулировании текстами. Он имеет составную естественную привязку ключей, которая может сделать ваши задачи разработки действительно гармоничными. Vim основан на простой * nix philiosphy, делающей одну вещь действительно хорошо - то есть манипулирование текстом.
Расширение Vim с использованием bash / zsh и tmux обычно легко и позволяет многому научиться. ИМХО это хорошая кривая обучения. Главное - научиться интегрировать эти вещи, чтобы получить большее работающее приложение. С Vim вам нужно изучить интеграцию, потому что она не интегрируется естественным образом, если вы не скажете, как это сделать. Еще одно стоящее расширение, которое я использую, это Tig. Это основанный на ncurses интерфейс Git. У меня просто есть привязка, которая молча открывает Tig, а затем я делаю там все Git.
Это до конечного пользователя, чтобы решить, что работает лучше всего. То, что Emacs и Vim выдержали испытание временем, является доказательством их достоинства. В конце концов, хорошему программисту для творчества нужны только ручка и бумага. Хорошие алгоритмы не нуждаются в редакторах для их поддержки. Попробуйте оба и посмотрите, что делает вас более продуктивным. И изучите шаблоны проектирования от этих двух программ, поскольку есть много, чтобы изучить и обнаружить!
источник
В Emacs есть режим viper, поэтому в некотором смысле он предоставляет расширенный набор функций (за исключением тех, которые описаны в разделе «Какие функции Vim отсутствуют в Emacs с Viper и Vimpulse?» ).
vi (и VIM IIRC) имеет меньший вес (он может редактировать файлы на месте), но предлагает меньше функций (взаимодействие подпроцесса, язык расширения).
источник
Emacs - это больше всего программа для всего , а vi (m) - это просто редактор. Если вы редактируете текст, они оба хороши, но я предпочитаю emacs просто потому, что мне нужно сдвинуть одну строку с домашнего ряда для перемещения и продолжать вводить неправильные вещи в командном режиме. Если у вас нет этой проблемы, vi (m) может быть редактором для вас.
источник
Желтучая точка зрения:
vi (не vim) - это профессиональная необходимость. У вас всегда есть какая-то легко доступная форма vi, независимо от среды. Вы можете быть в vi, когда в emacs, вы можете быть в vi, чтобы создавать команды bash в unix-land.
Даже Microsquish должен поддерживать vi (хотя они и умеют скрывать его) из-за государственного и корпоративного соответствия опубликованным стандартам.
По моему мнению, если вы занимаетесь практической работой в напряженной обстановке, а не в тепличных цветах, приуроченных к одному причудливому оборудованию в среде разработки или в академических кругах, - много знать о причудливом редакторе - это препятствие для работы. Не изучайте все хитрые приемы в vim или emacs и не разрабатывайте кучу макросов, чтобы заставить среду редактирования подчиняться вашей воле. Это огромная трата времени, которая встает у вас на пути, когда вы занимаетесь различными машинами, которые вы, вероятно, не можете оправдать в заводских условиях.
Прочитайте статью Билла Джоя - это очень компетентное, возможно, даже красивое, инженерное упражнение по редактированию простого текста очень, очень быстро. Здесь действует правило Парито: 80% фруктов находится в 20% корзин. Редактирование простого текста очень и очень быстро - суть компетенции в редактировании - все остальное необязательно - и иногда вредно.
источник
Если вы много перемещаетесь с сайта на сайт или ваша работа связана с входом в производственные системы, тогда vim - это то, что вам нужно.
На всех машинах * nix vi будет установлена по умолчанию.
Большинство системных администраторов предпочитают ksh в качестве оболочки по умолчанию. ksh использует комбинации клавиш vi (или emacs) для поиска в истории и редактирования командной строки.
Если вы плохо знаете vi, у вас серьезные недостатки, когда вы входите в окно Unix со стандартной конфигурацией.
Только по этой причине я бы порекомендовал vim в качестве вашего обычного редактора на каждый день. Я видел фанатов emacs, которые пытались исправить конфигурационные файлы на сервере unix.
источник
set -o vi
в вашем.bashrc
, вместо тогоset -o emacs
, который используется по умолчанию. Я никогда не использовал ksh, но это может быть то же самое.В своем вопросе вы не упомянули, что хотите, чтобы он программировался на Лиспе! Но когда вы комментировали свои ответы, я понял, что вам действительно нужен интерфейс программирования LISP.
Для этого точного задания просто забудьте о Vi. Интеграция Emacs с LISP замечательна! Вы должны использовать SLIME. Тогда у вас будет прекрасная интеграция с REPL, и вы сможете выполнять
eval
функции, буферы или файлы непосредственно в работающем интерпретаторе в буфере emacs и многое другое ...источник
Я работал с spacemacs около 2 лет и neovim уже около года в производственной / исследовательской среде. Spacemacs - это emacs с несколькими приятными дополнительными функциями, такими как слои и т. Д. И neovim снова является форком vim с некоторыми дополнительными функциями.
Я совершенно недоволен ими обоими с точки зрения опыта. И я все еще ищу долгосрочное решение для моих потребностей в редактировании текста.
Вот простое сравнение:
Neovim, vim, emacs, spacemacs и т. Д. Все эти редакторы потребляют меньше ресурсов по сравнению с большинством редакторов.
Neovim / vim немного быстрее, чем emacs, заметно быстрее, чем spacemacs.
С точки зрения опыта редактирования. Я легко могу сказать, что пакеты emacs чувствуют себя превосходящими. Я думаю, это потому, что они лучше сочетаются с ядром Emacs.
Vimscript хорош и, безусловно, есть отличные проекты в экосистеме vim. Хорошо, что они лучше задокументированы, чем большинство проектов emacs, которые я видел до сих пор.
Оба могут быть затруднены в зависимости от пакета, который вы используете. Spacemacs, как правило, зависает, а neovim, как правило, отображает страшные сообщения об ошибках, так что выбирайте яд там.
Модальное редактирование в vim не является интуитивно понятным понятием, но как только вы привыкнете к нему, вы захотите его в любом случае. Оба редактора предоставляют это.
источник
Выполнение нажатия клавиши ::: редактирование vi сохраняет каждую перестановку набранных ключей. Это создает путь в дереве решений, который однозначно идентифицирует любую команду, в то время как команды Emacs представляют собой комбинацию типизированных ключей, выполняемых немедленно, что оставляет пользователю возможность выбора, использовать ли команду.
Использование памяти и настраиваемость ::: vi - это небольшая и более быстрая программа с более ограниченными возможностями для настройки, тогда как Emacs требует больше времени для запуска и требует больше памяти. Тем не менее, он легко настраивается и включает в себя большое количество функций, так как по сути это среда выполнения для программы на Лиспе, предназначенной для редактирования текста.
источник
vim - удобный редактор, вы просто набираете,
vim filename
чтобы открыть файл, отредактировать, сохранить и закрыть.emacs - это «операционная система», притворяющаяся редактором, вы можете
eval
кодировать, чтобы изменить его поведение, и расширять его по своему усмотрению.mode
Получить / отправить по электронной почте на Emacs похожа на программное обеспечение электронной почты в операционной системе.При простом редактировании, например, изменении файла конфигурации, я использую vim .
В противном случае я никогда не покину Emacs .
источник
Я думаю, что основным отличием является цель дизайна. VIM для UNIX в качестве рабочего редактора. Emacs предназначен для хакеров GNU и lisp, поэтому в нем есть какой-то смешанный элемент дизайна.
Я использую vim на своей рабочей станции, а также люблю emacs.
источник
Я фанат Emacs, но призываю других разработчиков изучать VI, потому что:
Я заметил несколько комментариев о том, что 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 - нижняя левая клавиша.
источник
Сначала я пользовался vim, затем переключился на emacs, затем на vim, теперь я снова экспериментирую с emacs.
Как разработчики, мы много печатаем, и, наконец, для меня перемещение в буферах и файлах - самая большая повторяющаяся задача, поэтому я хочу редактор, в котором я МОГУ БЫСТРОЕ ПЕРЕМЕЩЕНИЕ!
Мотивация снова поэкспериментировать с emacs заключается в том, что я справился с клавишами Ctrl быстрее, чем vim, и легче рассуждать.
В vim у вас есть режимы, у вас есть режим вставки, визуальный режим, нормальный режим, то, что происходит, когда вы нажимаете что-то, зависит от режима, в котором вы находитесь, - это подход к редактированию с учетом состояния. Вы перемещаетесь, входите в режим вставки, редактируете, выходите из режима вставки и снова двигаетесь. Я часто теряю себя, если я пропускаю пресс ESC или что-то подобное.
В emacs нет режима, в основном вы нажимаете Ctrl розовым цветом и нажимаете клавишу, например Cx Cf, Cx Cs, Cx Cc. Есть комбинации клавиш, где вам нужно отпустить клавишу Ctrl, я ненавижу эти и всегда заменяю их на нажатые клавиши управления.
Я думаю, что подход emacs быстрее думать и печатать, но у vim есть и другая сила. Его команды являются составными, они обычно имеют формат. Например, чтобы удалить строку, которую вы можете использовать
dd
, чтобы удалить словоdw
. Плагины используют этот сруб, с помощью плагина vim -round вы можете удалять цитаты с помощью ds "(delete Surround"), удалять до следующего /dt/
. Удалить до предыдущего /:dT/
и так далее. Так что, пока вы учитесь, движущиеся вещи начинают становиться очень интересными.Подводя итог, сегодня я понял, что привязки клавиш emacs быстрее для редактирования макросов, а команды vim более эффективны для микроредактирования
Я использую vim в течение последних пяти лет, поэтому я редактирую, думая в основном о словах, строках, окружении, блоках и т. Д. Удалите эту строку, удалите кавычки, замените кавычки, удалите слово в курсоре, я пытаюсь найти emacs движется для этого
В качестве заключительной цитаты я бы сказал, что меня больше волнует fzf, чем emacs или vim, я хотел бы иметь редактор, полностью основанный на fzf
источник
Во-первых, 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 (ссылка идет вниз, так что используйте это )
Поиск ответа в hxxp: //en.wikipedia.org/wiki/Editor_war
источник