Каковы плюсы и минусы Vim и Emacs?


372

Как бы вы сравнили эти редакторы? Каковы плюсы и минусы каждого?

[ примечание ] На это не должны отвечать те, кто «ненавидит одного и любит другого» или те, кто не использовал оба.


1
M-! emacs RETЭто как поиск в Google для "Google"
Симус

11
Дубликат SO вопроса: stackoverflow.com/questions/1430164/… ubuntu askubuntu.com/questions/804/… и программистов programmers.stackexchange.com/questions/1271/… Должен любить распространение здесь.
Трей Джексон

27
Я удивлен, что никто не упомянул XKCD 378 .
tedder42

9
Обратите внимание, что эти вопросы никогда не удосуживаются попросить сравнить их с Эдом, единственным настоящим редактором WYGIWYG!
Марк К Коуэн

4
@ tedder42 Тогда вы могли бы также сказать «Мел» ...
Тобиас Кинцлер

Ответы:


420

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

  • Доступно везде? Если вы профессиональный системный администратор, работающий с системами Unix, или опытный пользователь на встроенных устройствах (маршрутизаторы, смартфоны с Busybox и т. Д.), Вам необходимо знать vi (не Vim), поскольку он доступен во всех системах Unix и большинстве Unix-подобные системы, будь то настольные, серверные или встроенные. Для обычного пользователя этот аргумент не имеет значения: Emacs легко доступен для любой операционной системы настольного компьютера или сервера, и, поскольку он поддерживает удаленное редактирование, его все равно достаточно, чтобы он был установлен на вашем компьютере.

  • Bloated? Emacs когда-то с юмором стоял за «Восемь мегабайт и постоянный обмен». Прямо сейчас на моем компьютере Google Chrome требуется примерно столько же ОЗУ на вкладку, сколько в Emacs для 100 открытых файлов, и я даже не буду упоминать Firefox. В 21 веке раздувание Emacs - это просто миф.

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

  • Время запуска : Сторонники Vi (m) жалуются на время запуска Emacs. Да, Emacs запускается медленно, но это не имеет большого значения: вы запускаете Emacs один раз за сеанс, а затем подключаетесь к запущенному процессу emacsclient. Так что медленный запуск Emacs - это в основном миф.

    Есть одно исключение, когда вы входите на удаленный компьютер и хотите отредактировать файл там. Запуск удаленного Emacs (обычно) медленнее, чем запуск удаленного Vim. В некоторых ситуациях вы можете поддерживать работу Emacs внутри Screen. Вы также можете редактировать удаленные файлы из Emacs, но это нарушает поток, если вы находитесь в сеансе ssh в терминале. (Начиная с XEmacs 21 или GNU Emacs 23, вы можете открыть окно Emacs из запущенного экземпляра X внутри терминала.)

    Перевернув таблицы, я заметил, что Vim загружается заметно дольше, чем Emacs ( vim -u /dev/nullпротив emacs -q). По общему признанию это было на странной платформе (Cygwin).

  • Начальная кривая обучения: это варьируется от человека к человеку. График Майкла Мрозека заставил меня рассмеяться. Серьезно, я согласен с тем, что кривая обучения Vim начинается быстрее, круче, чем у любого другого редактора, хотя это можно уменьшить с помощью gvim.

    Поскольку я развеял пару мифов Emacs, позвольте мне развеять миф vi: модальный редактор не сложен и не болезнен в использовании. Это требует небольшой привычки, но через некоторое время это кажется очень естественным. Если бы я изменил дизайн vi (m), я бы определенно сохранил режимы.

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

  • Производительность : это чрезвычайно сложная тема. Сторонники vi (m) утверждают, что вы можете делать практически все, не выходя из домашнего ряда, и это делает вас более эффективным, когда вам это нужно больше всего. Сторонники Emacs возражают, что Emacs имеет много команд, которые используются не часто, поэтому не стоит связывать ключи, но они чертовски удобны, когда они вам нужны ( обязательная ссылка на xkcd ).
    Мое личное мнение заключается в том, что Emacs в конечном итоге выиграет, если у вас нет проблем с печатанием (и даже тогда вы можете настроить Emacs так, чтобы он требовал только последовательности клавиш, а не комбинации, такие как Ctrl+ буква). Клавиши домашнего ряда хороши, но они часто не так уж выигрывают, потому что вам нужно переключать режимы. Я не думаю, что есть что-то, что Vim может сделать значительно более эффективно, чем Emacs, тогда как обратное утверждение верно.

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

  • Больше, чем редактор : Vim - редактор. Emacs - это не просто редактор: это также IDE, файловый менеджер, эмулятор терминала, веб-браузер, почтовый клиент, новостной клиент ... Это хорошо или плохо - вопрос дискуссионный. Но вы можете использовать Emacs в качестве простого редактора (см. «Разворот возможностей» выше).

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

    Одной из областей, где Emacs лучше, чем Vim, является взаимодействие с асинхронными подпроцессами. Вот когда вы начинаете длинную компиляцию и хотите сделать что-то еще в том же экземпляре редактора, пока компилятор работает. Или когда вы хотите взаимодействовать с циклом Read-eval-print - Emacs действительно хорош в этом, Vim предлагает только неуклюжие хаки. Тем не менее, новая ветка vim, Neovim , исправила это и внедрила другие исправления ошибок, не реализованные в стандартной версии vim.


34
Я не могу согласиться с пунктом «Больше, чем редактор». Vim также имеет много плагинов, в том числе те, которые превращают его в файловый менеджер или IDE (например, vim-latex).
rozcietrzewiacz

7
Это заставило меня чувствовать себя маленьким ...
gnometorule

10
@rozcietrzewiacz: Да, но вы можете просматривать веб-страницы в Vim? Читать электронную почту? Проверить ваш канал RSS? Я не думаю, что вы можете отрицать, что Emacs просто более мощный, хотя полезность этой силы зависит от того, что вы ищете.
musicfreak

3
@Bananguin Emacs лучше во всем, что предполагает взаимодействие с REPL . Например, Proof General очень хорош (конечно, это очень узкая область применения). Emacs умеет делать вещи, о которых раньше никто не задумывался: Emacs Lisp намного лучше, чем макроязык Vim. Emacs имеет тенденцию иметь лучшую поддержку для отступа исходного кода, но я не думаю, что это скорее недостаток Vim, чем отсутствие библиотек (поддержка Vim, как правило, ограничивается подсветкой синтаксиса).
Жиль

5
@MichaelHampton Ты должен быть молодым тогда. В 1985 году было восемь мегабайт . К настоящему времени я предполагаю, что это должно быть восемь тысяч мегабайт, за исключением того, что никто не замечает использование памяти Emacs, так как это меньше, чем одна вкладка браузера.
Жиль

267

Я опубликую то, что я считаю основными преимуществами каждого:


Emacs имеет значительно больше расширений, позволяющих вам выполнять задачи, которые связаны только с текстовым редактором, такие как просмотр файловой системы или работа с контролем версий, а также расширения, которые никак не связаны с текстовым редактором, такие как чтение RSS-каналов. Если вам нужна среда, а не просто текстовый редактор, Emacs будет лучше, чем Vim. Я также думаю, что изучать Emacs намного проще, несмотря на то, что некоторые заставят вас поверить:

Редактор кривой обучения комиксов

В частности, я думаю, что начинающий пользователь Emacs будет быстрее, чем начинающий пользователь Vim


С другой стороны, Vim, несомненно, быстрее. Похоже, что это основная часть аргумента, но, по моему мнению, нет никакого конкурса вообще; Я считаю себя свободным пользователем Emacs, и я не могу сравниться с парой знакомых, которые имеют равные знания Vim. Проблема в том, что количество людей, которые достаточно хорошо владеют Vim, чтобы быть таким быстрым, невероятно мало (из ~ 30 человек, с которыми я регулярно общаюсь и которые используют Vim, я думаю, что только один исключительно хорош в этом). Существует большой разрыв между возможным приростом скорости и фактическим приростом скорости, которого вы достигнете; Пользователи Emacs будут почти такими же быстрыми, как 99% пользователей Vim, и (как я уже говорил в разделе Emacs) начинающие пользователи Emacs, вероятно, будут быстрее, чем начинающие пользователи Vim.


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

13
@xeno Я не знаю, какие плагины есть у vim, так что, возможно, VCS был плохим примером, но я уверен, что Emacs имеет гораздо больше плагинов, чем vim, потому что vim не поддерживает философию «одна программа делает все»
Михаил Мрозек

4
Кто-нибудь может объяснить, что означает приведенный выше график emacs? Как это интерпретировать?
Эндрю-Дюфрен

27
Это шутка «из кроличьей норы» ... Потому что когда вы изучаете emacs, в конце концов вы тоже начинаете создавать emacs. (поскольку Emacs - это действительно очень большая коллекция макросов / подпрограмм для редактирования, написанных на интерпретаторе Lisp.)
ocodo

15
+1 Ваша скорость против опыта хорошая, но, возможно, 99% - это немного экстрим. Я имею в виду, что vim не так уж сложен в освоении, он занимает всего пару лет;)
Йохан,

81

Это viдоступно в любой системе Unix (или почти), но вы не можете сказать это ни о каком другом редакторе. Это причина № 1, imo, для изучения и ознакомления vi(пожалуйста, обратите внимание: «vi», а не «vim»). Я никогда не видел, чтобы Emacs был доступен при установке по умолчанию.

Я не говорю, что не используйте Emacs, или это единственная причина для использования Vim, но когда вы хотите использовать Unix-системы, которые не принадлежат вам ... viэто часть универсального языка.


1
Я довольно vimпользователь, но мне часто бывает трудно его использовать vi, скорее всего из-за ключа END (vim поддерживает его, но vi не поддерживает или, по крайней мере, не использует по умолчанию)
phunehehe

25
@phunehehe, если я пытаюсь использовать, nanoя получаю целую кучу ijkloOah в моем файле ... пока не пойму, что не могу использовать их для навигации. Я не использую клавиши со стрелками для навигации.
ксенотеррацид

5
Это удваивается для подключения к медленным серверам через хитрые соединения: один редактор, который у них гарантированно (это в спецификации Unix, я думаю?) - это vi, а командный режим vi значительно упрощает редактирование файлов с меньшим количеством нажатий клавиш когда каждое нажатие клавиши занимает несколько секунд, чтобы появиться на экране. Конечно, шаг № 1 обычно устанавливается vim:)
Gaurav

12
@phunehehe Я не использую esc. Я использую Ctrl + [он делает то же самое;)
xenoterracide

8
+1 за комментарий Гаурава. Vi отлично работает для экстренного редактирования файлов конфигурации через дрянное соединение 3G на медленном сотовом телефоне.
LawrenceC

23

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

Emacs выделяется мне тем, что он немного ближе (хотя все еще не соответствует) стандартам ISO / IEC юзабилити и согласованности для пользовательских интерфейсов, и, следовательно, не использует столько уловок с вашими «инстинктами» в отношении того, что делает vim. Время жизни инстинктов, которые вы разработали, работая с другими программами, не сработает против вас.

Vim - это совершенно другая модель, и во многих отношениях она лучше сама по себе, поскольку гораздо меньше полагается на последовательности Cntrl / Alt, а вместо этого - только на ее режимы, позволяя вам сохранять свои харды на домашней строке и вводить текст. Быстрее. Но vim практически уникален, и если вы не установите какое-то очень необычное сопровождающее программное обеспечение (например, Vimperator, Jumanji / Zathura и т. Д.), Инстинкты, которые вы развиваете, работая с vim, не перейдут на другие программы и наоборот. Тем не менее, я остановился на Vim себя. Вы должны остановиться на одном рано или поздно, к лучшему или худшему, так как трудно овладеть обоими.


1
Один комментарий о строке «инстинкты, которые вы разрабатываете, работая с vim, не перейдут на другие программы»: строку «установить режим редактирования vi» можно добавить в файл ~ / .inputrc (в системе Linux, которая его поддерживает) , Это позволяет использовать синтаксис в стиле vi для ввода текста в программах, использующих readline для stdin, таких как сама оболочка bash. Может быть (иногда удивительно) изрядное количество более широкой применимости к инстинктам редактирования, которые развиваются с использованием vim.
Кристиан Эбботт

К счастью, есть много людей с этой проблемой, и они создали расширения для многих программ, чтобы сделать их более похожими на vim .
DarkWiiPlayer

21

Я использую оба на регулярной основе. Я рассматриваю Emacs как «живой» редактор, тогда как я использую Vim для быстрых одноразовых задач. Внешне Emacs гораздо более раздутый, чем Vim, и поэтому «запускать» не так удобно, как Vim, но я также обнаружил, что философия пользовательского интерфейса от одного к другому поддерживает эту парадигму. Emacs гораздо больше построен, чтобы держать вас внутри, делая вещи приятными и удобными, чтобы вам не пришлось уходить, тогда как vim гораздо более "Unixy" и видит себя как часть большего пояса инструментов.

Многие люди бегут из Emacs из-за его сильной зависимости от битов , но это довольно глупая причина для меня. Реальная сила, которую Emacs имеет над Vim, - это настраиваемость, и с мощью Viper и т. Д. Это действительно не проблема. Конечно, Vim-Script обеспечивает свой собственный уровень настройки, и если, скажем, ваш любимый язык программирования не был снабжен соответствующим средством подсветки синтаксиса, вы наверняка могли бы его создать, но в конечном итоге Emacs - это самодостаточный lisp-компьютер, и в конец, вы можете сделать гораздо больше, возиться с этим. В Vim просто нет таких инструментов, как gnus или org-mode . Короче говоря, Emacs - это не просто редактор, это практически проклятая операционная система.

Для манипулирования текстом я бы сказал, что они в точности соответствуют.


30
«Emacs стал бы отличной операционной системой, если бы у него был текстовый редактор, который стоит того». - Мне напомнили об этой цитате.
амфетамина

@amphetamachine Я не понимаю цитату. Значит ли это унижать emacs-the-text-editor?
Чепанг

Это значит, хотя я обычно слышу это более насмешливо, чем кусаться.
опрос Коди

Что касается самих редакторов, я считаю, что с помощью vim редактировать текст проще, но я должен передать настраиваемость emacs. Vimscript просто не выдерживает шума.
опрос Коди

19

Я вложу свои 0,02 доллара, так как я потратил немало лет, используя emacs и XEmacs, а затем перешел на vim. Честно говоря, в 1990-1992 годах я довольно часто использовал vi, поэтому я был знаком с его пользовательским интерфейсом.

Emacs

  • Emacs был описан как система lisp, которую просто использовали для написания редактора, и в этом есть доля правды. Вы можете реализовать практически все, что захотите, в elisp, если не торопитесь, чтобы понять окружающую среду. Не могу сказать, что когда-либо узнавал это так хорошо, но иногда я делал что-то холодное. Emacs и Xemacs не полностью совместимы на этом уровне, поэтому сторонние скрипты могут работать на одном, но не на другом.

  • Было замечено, что RMS и некоторые другие известные хакеры Emacs были вынуждены отказаться от программирования из-за проблем с OOS, где до сих пор работают Билл Джой, Брэм Муленаар и другие знаменитости. Emacs тяжело на твоих мизинцах.

  • Emacs является гораздо более католической системой, чем vi, и рассматривается как канонический пример разработки программного обеспечения . Наряду с Netscape, это один из вкладов jwz в доказательство этого закона.

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

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

Минусы: сомнительная эргономика, elisp нелегко выучить.

напор

Отказ от ответственности - я перешел от использования emacs к vim около 10 лет назад, и я обычно использую vim в системах на базе Windows и Unix / Linux.

  • Vi и его потомки имеют очень хорошие возможности макросов клавиатуры для автоматизации задач редактирования. Средство создания сценариев в vim не так сложно, как elisp, но вы можете создать его с поддержкой Python, Tcl, Perl и, возможно, некоторых других систем. Я только время от времени писал сценарии (за исключением файлов .vimrc) для vim.

  • Vim занимает меньше места, чем emacs, но в наши дни это не так уж важно.

  • Документация Vim и помощь онлайн довольно хороши. Emacs имеет неплохую онлайновую документацию, но я не думаю, что она такая же всеобъемлющая, как у vim.

  • Vim наследует причудливый модальный пользовательский интерфейс vi, но теперь он может вести себя почти как немодальный редактор, поскольку вы можете перемещаться в режиме вставки. В Windows он может вести себя аналогично приложению Windows.

Плюсы: Хорошие возможности макросов клавиатуры, неплохо расширяемые возможности и скрипты, но не такие хорошие, как в emacs. Vim или производные от vi редакторы являются стандартными в большинстве, если не во всех дистрибутивах Unix или Linux общего назначения. Возможно лучшая эргономика.

Минусы: Модальный пользовательский интерфейс кажется странным людям, привыкшим к пользовательским интерфейсам Windows. Меньше проблем с vim в эти дни.


Мне понравилось читать ваш ответ, но я скучаю по решающему фактору. Что заставило вас перейти с Emacs на VIM?
Эрик Б.

Это было просто органично - плюс клавиатурные макросы vim работают очень хорошо.
ConcernedOfTunbridgeWells

1
Черт, как молодой программист, аргумент об эргономике очень привлекателен. Это могло бы просто решить мой выбор пойти и изучать VI и VIm вместо Emacs.
Дидье А.

15

Я обычно использую Vim, но они оба замечательные редакторы.

Научиться пользоваться vi было неприятно, но я прошел через это и научился любить его. Мои самые неприятные моменты были, когда был включен ключ блокировки крышки. Вы можете попробовать с gVim, но одно из самых больших преимуществ vi и Emacs - это возможность делать аккуратные вещи, не отрывая рук от клавиатуры, и gVim, скорее всего, заставит вас пользоваться мышью. (Изучение одновременной игры в жанре roguelike дало мне возможность тренироваться с клавишами перемещения курсора, но иногда заставляло меня перемещаться по диагонали в документах.)

Emacs, вероятно, более доступен. Это немодально, и вы не облажаетесь, нажимая клавишу блокировки колпачков. Идея управления редактором с помощью набора букв с нажатой клавишей управления не должна быть слишком чуждой для современных опытных пользователей, хотя фактические клавиши для действий будут казаться дикими и произвольными для обычного пользователя Windows / Mac OS X. Опять же, версии, которые позволяют вам использовать мышь, в долгосрочной перспективе приносят вам мало пользы.

Оба требуют определенного уровня экспертизы для эффективного использования. В отличие от, скажем, Блокнота, вы не можете просто сидеть и редактировать.

И то, и другое настраивается, хотя за мои деньги написание расширений в одном и том же Лиспе, в котором написан редактор, облегчает работу. (Emacs, как обычно распространяется, на самом деле не редактор. Это среда Lisp, специально предназначенная для обработки текста, с большим количеством предварительно написанного программного обеспечения, включая редактор. Отсюда и шутка: «Emacs создает приличную оболочку, но может использовать лучший редактор. ")

Я обычно использую Vim, потому что после интенсивных тренировок мне легче. Это может быть связано с преимуществами системы режимов, где огромное количество команд доступно с помощью одного пальца рядом с домашними строками, или «синдром детской утки», который очень применим к редакторам: как только вы выучите хорошую, вы обычно придерживаетесь к этому.

Вы не ошибетесь, используя либо.


9

Основная причина, по которой я не использую vi / vim, заключается в том, что он модальный. Основная причина, по которой я использую vi, заключается в том, что он доступен практически везде.


12
Основная причина, по которой я использую vim, заключается в том, что он модальный. Более высокая кривая обучения, но гораздо проще в использовании, когда вы к ней привыкли.
Крис Дженкинс

1
Стоит отметить, что если вам нравится модальное редактирование, Emacs имеет хорошую поддержку для него в режиме зла - emacswiki.org/emacs/Evil
Чарльз Стюарт,

9

Мне кажется, что вышеприведенный комментарий "vim is modal" неверен. У Вима есть команды. Вы можете сделать «11aNow - время для всех хороших людей ...» и в итоге получите 11 одинаковых новых строк текста в вашем файле. Это команда, а не режим. Но на самом деле есть очень принципиальное отличие команд Vim от команд Emacs. Я не совсем уверен, что могу описать это, но Эрик Фишер включил редактирование строк в стиле Emacs в драйвер TTY более 10 лет назад и опубликовал статью об этом:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

Он обнаружил, что редактирование линий в стиле Emacs принципиально отличается от стиля vi.

Таким образом, Emacs имеет преимущество в том, что многие другие вещи (bash, gnuplot, zsh, ksh и другие, которые я не могу придумать не по своей голове) в конечном итоге реализуют редактирование строк в стиле Emacs.

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


1
set -o viв bashили zshне слишком сложно запустить (или положить в rcфайл), по моему мнению.
moon.musick

@ moon.musick - конечно нет, я делаю это все время. Просто gnuplotPostgresql psql, MySQL mysqlи множество других интерфейсов более или менее по умолчанию используют режим Emacs. Если бы только Oracle мог sqlplusсделать редактирование командной строки ... нет, нет. Это было бы слишком много, чтобы спросить у крупной корпорации. У них есть тенденции, чтобы следовать!
Брюс Эдигер

Да, чаще всего это inputrcделается для инструментов оболочки, но потом я ловлю себя на полсекунде, почему jне прокручивает, скажем, Mendeley Desktop после переключения на него с терминала, и их несколько раз просили привязки vim. К сожалению, не может охватить все и иметь согласованную среду.
moon.musick

2
@BruceEdiger я очень сомневаюсь , что разработчики mysql(1), psql(1), gnuplot(1), и python(1), perlconsole(1), lftp(1), smbclient(1)и в самом деле много интерактивных программ были обеспокоены привязками для редактирования строки. Все эти программы просто используют GNU Readline , и режим по умолчанию для GNU Readline (что неудивительно) GNU Emacs-подобный. set editing-mode vi в вашем ~/.inputrcи вуаля - все эти инструменты имеют Vi-подобные сочетания клавиш.
Дмитрий Александров

9

Поскольку это прямо не указано, я добавлю, что нет лучшей среды программирования (Lisp in a box, SLIME и т. Д.), Чем слегка измененный дистрибутив Emacs. Все мои потребности в программировании (99%) решаются изнутри Vim, но для всех тех библиотек и подпрограмм Lisp, которые я пишу, мне нужно запустить Emacs, чтобы сделать что-нибудь продуктивное.


8
Я иногда задаюсь вопросом, говорит ли это больше о Лиспе или об Emacs, и хорошо это или плохо ...
Кевин Канту

8

Я использую Vim / gVim.

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

Когда я использую Vim или gVim, я часто использую мышь, я думаю, что поддержка для нее великолепна.

Я начал использовать Emacs, потому что его было проще использовать для начинающего пользователя. Я обнаружил, что использование nano по какой-то причине довольно подвержено ошибкам, и в какой-то момент я понял, что мне гораздо удобнее использовать vi.

Прямо сейчас это смесь. Я часто использую Eclipse и gedit. Vim, однако, по-прежнему мой любимый и наиболее используемый редактор.


7

Я использую gVim и Emacs достаточно хорошо, чтобы быть продуктивным, хотя я не разбираюсь ни в одном. С уверенностью могу сказать, что Vim и gVim работают быстрее на моем ноутбуке с Windows 7 (который я должен использовать на работе). Emacs в Windows имеет странную привычку «делать паузу» на одну минуту и ​​перестать отвечать на запросы, даже продолжая принимать ввод с клавиатуры, прежде чем спешно выплевывать все накопленное в буфере клавиатуры. Этого не происходит в Mac OS или Linux. Тем не менее, я чаще всего использую Vim или gVim на всех платформах, поэтому мне не нужно останавливаться и думать о том, какой редактор я использую и настраивать. Тем не менее, в чисто * nix-среде я, вероятно, останусь с Emacs, потому что нахожу немодальное редактирование немного более естественным.

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


3

Основное различие между Emacs и Vim - эргономично. Существует синдром запястного канала, CTS, как вы знаете. Emacs очень опасен, если у вас есть CTS и провоцирует CTS. Vim - нет, об этой разнице можно прочитать во многих местах. Например, в Vim вы можете редактировать текст только одним пальцем. В Emacs - нельзя :)


3
Даже не доказано, что CTS на самом деле связан с использованием клавиатуры. Хотя внешне правдоподобно, есть ссылки, показывающие, что CTS на самом деле вызван генетически больше, чем что-либо еще. Поэтому, хотя это может все же помочь печатать меньше, когда у вас уже есть CTS, я не думаю, что есть какие-либо доказательства того, что один редактор вызывает CTS больше, чем другой.
Конрад Рудольф

-2

Я использую vi/ nvi(НЕ vim), потому что это просто и ненавязчиво.

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

set vb t_vb=

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

И, может быть, я слишком глуп, чтобы понять, что запутанным, нажатием нескольких клавиш, emacsединственная комбинация из трех клавиш, которую я помню, это CTRL-ALT-DEL.


-2

"Каковы плюсы и минусы Vim и Emacs?" - ха!

Я в основном оставлю плюсы другим.

Минусы обоих из них в том, что они оба старой школы. В течение многих лет я использовал, вероятно, 50 различных редакторов, от линейных редакторов Basic до суперскоростных редакторов с кодовой сборкой (VEDIT для одного), до шикарных графических редакторов, некоторые лучше, чем другие. Я даже написал свой собственный специальный редактор под названием ForthStar и адаптировал его для редактирования дерева btrieve листьев с несколькими индексами для мощного поиска, например, для мгновенного поиска последних отредактированных листьев или для быстрого поиска компонентов кода или родительских листьев или дети.

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

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

Оба застряли в сложных раскладках клавиатуры. Emacs может немного приспособиться к пользователю, признав, что есть ключ Alt, а не античная Meta. И, как и WordStar, признают, что держать CA CB прямо от CA B при быстрой печати не стоит. Лучше просто иметь тот, который запускается любой ключевой комбинацией. Да, вы можете изменить привязки клавиш, но тогда какой беспорядок у вас будет позже.

Vi умна, но ей не хватает мощного поиска и замены, как в Notepad ++, который показывает вам, что он обнаружил, позволяет расширить его и выборочно применить его в цвете, чтобы упомянуть одно новшество.

Практически любой другой графический интерфейс в наши дни позволяет масштабировать с помощью колесика мыши. Emacs GUI, похоже, не работает. А где приятный крик, как у Кейт?

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

Давайте посмотрим правде в глаза, у большинства стран есть GUI в эти дни. И нравится это или нет текстовые редакторы несколько застряли в их возрасте.

Я думаю, что было бы лучше иметь универсальный редактор, который мог бы легко переключаться между emacs, vi, wordstar или любым другим расположением клавиш без потери более мощных команд, которые он может предложить. Настоящие программисты должны использовать различные инструменты редактирования. Почему бы не иметь редактора, который бы отвечал нашим потребностям для выполнения работы, а не заставлял нас делать то, что нужно?


Поскольку вопрос задан как за, так и против, это не отвечает на вопрос. Насколько я вижу, здесь упоминается только то, как другие редакторы лучше, чем Vi и Emacs.
Кусалананда

Любые ответы подходят для вопроса, пока они не ответят на вопрос, и они существенно отличаются от предыдущих. "Выглядит хорошо".
user259412

Q четко спрашивает о минусах. И я упоминаю некоторые плюсы.
эллиптический вид
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.