Особенности Emacs, которые дополняют Vim?

1794
redacted

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

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

С чего бы вам начать работать с Emacs, чтобы по-настоящему оценить его мощь и получить представление о том, чем его подход к редактированию отличается от Vim, и как редакторы могут дополнять друг друга? Что было бы хорошим введением в том же духе?

5

4 ответа на вопрос

7
Trey Jackson

Какие функции дополняют друг друга? Практически все, что не является прямым редактированием текста. Чтение почты, usenet, запуск оболочки, отладчик (gdb), компиляция, интеграция управления версиями, справочные страницы, списки задач / планирование проекта (org, planner), просмотр веб-страниц, ide (CEDET), IM, IRC, удаленное редактирование файлов ( TRAMP) и т. Д. Есть даже такие глупые вещи, как игры: тетрис, змея, пузыри, понг.

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

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

Я бы рекомендовал сначала не использовать режим Viper. Познакомьтесь с привязками клавиш emacs, * затем * включите режим viper - в противном случае вы в конечном итоге просто «используете дерьмовую эмуляцию vi», а не приличный редактор, который может иметь привязки клавиш vi dbr 14 лет назад 1
6
Richard Hoskins

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

Уровень 1 почти прямой vi. Уровень 5 - это почти Emacs. Вы можете переключиться с Viper на прямой Emacs и обратно по желанию.

Viper поставляется с Emacs, и все настроено и готово к использованию. Mx viper-mode запускает его. Он имеет вводный экран, который объясняет, как его использовать.

1
Justin Smith

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

Другие вещи, которые я пропускаю сегодня, когда не использую emacs: согласованность сочетаний клавиш в разных режимах и контекстах (вырезание / вставка / перемещение / и т. Д. Работают в минибуфере так же, как в буфере), интерактивное обновление отображения потенциальных завершений через режим ido (" Cx b "показывает мне список буферов, на которые я могу переключиться, набирая одну букву" .c "скрывает все из них без .c где-то в имени," Cs "поворачивает список," enter "выбирает элемент на Передняя часть списка. Я разочарован непригодностью моего оконного менеджера или Firefox, теперь, когда у меня есть такой способ переключения контекстов, все остальное неуклюже).

Другим преимуществом, на мой взгляд, является многократное преимущество, заключающееся в том, что большинство emacs реализовано в emacs lisp. Это означает, что emacs lisp может использоваться в качестве языка расширения и обладает функциями, необходимыми для реального программирования. Это означает, что язык расширения поддерживается достаточно эффективным и масштабируемым. Это означает, что когда люди расширяют emacs для повышения своей производительности, их функции могут быть тривиально интегрированы в официальные emacs. Со временем это означает, что emacs разрабатывается сообществом в масштабе, не сопоставимом с другими проектами свободного программного обеспечения (хотя firefox может в конечном итоге догнать xul / userscript). Это означает, что, поскольку elisp является очень рефлексивным языком, я могу запрашивать подробности о функциональности редактора в интерактивном режиме - на достаточно рефлексивном языке сама программа является самой точной документацией, которую вы можете иметь.

0
Chow

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

Мне действительно нравится использовать Vim, но сейчас я использую VACULL-режим UDNER EMACS, который является улучшением Viper-режима, чтобы сделать его похожим на vim. Одним из преимуществ vimpulse по сравнению с использованием обычного vim является то, что вы можете делать больше вещей в «режиме редактирования»; если вы хотите сделать быстрое редактирование, вы можете использовать сочетания клавиш emacs без необходимости переключения режимов.