Если Emacs и Vim будут драться насмерть, кто победит?

[Отказ от ответственности]: Я никоим образом не являюсь экспертом ни в одном из этих инструментов, у меня был достаточный опыт работы с обоими, до такой степени, что у меня есть здравое мнение по обоим.

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

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

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

Vim

Этот инструмент - чрезвычайно мощный текстовый редактор в исправленных руках и чрезвычайно эффективный генератор случайных символов в чужих руках (это :wq для выхода из FYI).

Фон

Vim (Vi IMproved), как следует из названия, является усовершенствованием текстового редактора Vi, редактора, разработанного для операционной системы Unix. Первоначально выпущенный в 1991 году, он приобрел популярность благодаря своей легкости. Он популярен среди технических специалистов, так как по умолчанию устанавливается в большинстве операционных систем на базе Unix и может использоваться через командную строку.

Первые впечатления

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

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

Самым сложным для меня было то, как я могу эффективно редактировать текст, когда я не могу вспомнить ярлыки, поэтому он указал мне на https://vim-adventures.com/, онлайн-игру, где вы можете итеративно изучать ярлыки, я бы порекомендовал это людям, которые хотят использовать Vim, но нуждаются в объяснении нескольких уровней сложности.

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

Интуитивность

Для меня, как только я освоил базовые функции, элементы управления стали логичными и имели смысл, у вас были клавиши перемещения, такие как w, которые будут перемещать вас вперед на слово. Вы можете повторить все, что угодно, добавив число, чтобы 2w переместил 2 слова. И команды могут принимать в качестве параметра клавишу перемещения, поэтому d - это удалить, поэтому d2w удалит 2 слова, интуитивно понятно, верно? Как только вы изучите эти вещи, вы сможете начать оптимизировать все, что вы делаете.

Затем вы можете связать их вместе и обрабатывать огромные файлы с помощью макросов.

Пакеты

Затем меня познакомили с доступными пакетами, в основном я следил за конфигурацией моего сенсея и зеркально копировал пакеты, которые у него были, добавляя их один за другим и интегрируя в свой рабочий процесс. Начиная с NerdTree, пакета, который поможет вам перемещаться по базе кода, без чего-то подобного вам придется выходить каждый раз, когда вы захотите переключить файл или запомнить относительный путь.

Пакеты легкие, и их легко установить, если у вас есть менеджер вроде Vundle. Это так же просто, как отредактировать .vimrc и запустить :PluginInstall. Выбор огромен: от тем до интеграции с git и способов превратить Vim в .Net IDE. Хорошая часть пакетов поступает от Tim Pope, разработчика Pathogen, другого популярного менеджера пакетов для Vim, я бы порекомендовал посмотреть его репозитории и посмотреть, что вы можете найти полезным.

Плюсы:

  • Plug ‘n play - вы можете легко выбрать любой экземпляр Vim и узнать, как его использовать, есть риск, что они могут переназначить несколько вещей, но в большинстве случаев вы сможете использовать его сразу.
  • Легковесность - базовая установка Vim в качестве пакета для Ubuntu составляет 2,8 МБ (приблизительно), что очень мало по сравнению с Emacs, размер которого составляет 100 МБ (приблизительно).
  • Настраиваемость - большая библиотека пакетов означает, что вы можете адаптировать свою версию именно так, как вам нужно.

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

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

Минусы

  • Крутая кривая обучения - базовое редактирование текста поначалу сложно, и, если вы не знаете, как использовать его на продвинутом уровне, вы не сможете эффективно редактировать.

Для интересующихся здесь - моя (немного устаревшая) .vimrc.

Emacs

Описывается как Расширяемый, настраиваемый,« бесплатный текстовый редактор и многое другое». акцент на и многое другое, поскольку Emacs действительно является универсальным программным обеспечением. Поскольку расширения можно легко создавать с помощью Lisp, вам доступно огромное количество разнообразных пакетов.

Фон

Emacs, название происходит от (Editor MACroS), представляет собой текстовый редактор с различным «режимом» для каждой задачи. Он сделан, чтобы быть быстрым и повысить производительность с помощью ярлыков и макросов, написанных на Лиспе. Хотя Vim поддерживает задачи, отличные от редактирования текста, Emacs, похоже, имеет больший набор инструментов для других операций.

Первые впечатления

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

Примерно через 2 года использования Vim я решил дать ему хороший шанс, я слышал, что Spacemacs - хорошее место для начала, и он хорош для предотвращения RSI, он меняет фокус с Alt на пробел, который легче добраться. Изучение злого режима Emacs (режим eVIl, как VIm) было еще одним важным фактором, почему я дал ему больше шансов (и использовал его сейчас), потому что я мог воспользоваться преимуществами редактирования текста Vim и объединить его с удивительными функциями Emacs.

Интуитивность

Мой предыдущий опыт работы с Vim был большим преимуществом, поэтому я не могу говорить об изучении Emacs с нуля, но все же оставалась кривая обучения, например, как управлять пакетами с помощью MELPA и перемещаться по файлам с помощью HELM и Dired.

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

И после того, как вы пройдетесь по нему несколько раз, вы можете управлять элементами управления, не глядя, на мой взгляд, это улучшение Vim, так как вам не нужно искать, как использовать определенные пакеты. Кроме того, существует команда поиска Alt-x или SPC SPC (для Spacemacs), которая не только позволяет искать доступные команды, но и показывает привязку клавиш для ее использования в следующий раз.

Пакеты

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

Мои наиболее часто используемые слои:

  • Git: устанавливает magit для управления VCS.
  • Ловкий: для быстрого создания заметок (у меня есть моя папка на Google Диске)
  • Helm: для быстрого поиска файлов

Плюсы:

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

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

  • Многофункциональный по умолчанию - при первой установке Emacs у вас под рукой будет довольно много инструментов без установки дополнительных пакетов, особенно если вы выбрали Spacemacs.
  • Поначалу пугает - огромное количество возможностей заставляет задуматься: «С чего мне начать?»

Минусы

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

Заключение

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

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