Лучший способ перейти с Vim на Emacs? - PullRequest
32 голосов
/ 19 июня 2009

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

Есть ли лучшие способы сделать переключатель?

Ответы [ 7 ]

35 голосов
/ 19 июня 2009

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

Я делаю то же самое при переходе, скажем, между системами контроля версий. Вместо того, чтобы создавать оболочку сценариев оболочки, которая позволяет мне продолжать использовать неправильные подкоманды, переводя их в идиомы новой VCS, я бы просто предпочел «говорить на языке новой системы» cold-turkey.

Помни: ты человек; Вы созданы, адаптироваться к новым ситуациям. Просто будьте осторожны, пусть ошибки будут ошибками, и у вас все будет хорошо.

24 голосов
/ 20 июня 2009

Практика Практика Практика. Как вы, наверное, знаете из изучения Vim, беглость Vim и Emacs приходит только с тоннами практики, пока команды не станут второй натурой. Я долгое время работала с Vimmer, и изучение Emacs было чрезвычайно болезненным и занимало месяцы, но в настоящее время я хорошо справляюсь с обоими. Стоит учиться и потому, что Emacs лучше, чем Vim, редактирует определенные языки и выполняет определенные задачи, и наоборот; хорошо иметь возможность использовать либо. Через некоторое время вы начинаете разделять эти два мысленно, и у вас, вероятно, не будет больших трудностей (хотя я все еще иногда :wq Emacs и C-/ Vim, это не случается достаточно часто, чтобы быть проблемой).

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

  • Emacs wiki - ваш друг. Когда вы сталкиваетесь с функцией Emacs, которую вы абсолютно не можете принять, обычно есть способ устранить проблему.

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

  • Не используйте viper или vimpulse, по крайней мере, сначала. Emacs никогда не будет таким хорошим Vim, как Vim. Погрузитесь в Emacs, пока не привыкнете к нему. Способ работы Emacs сильно отличается, но он имеет свои сильные и слабые стороны по сравнению с набором комбинаций клавиш Vim. Изучите их обоих, чтобы вы могли увидеть эти сильные и слабые стороны и принять обоснованное решение. В настоящее время я позаимствовал несколько ярлыков Emacs и отобразил их в Vim, и наоборот.

  • Успокойся. Когда (не если) Emacs начинает пенить рот в ярости, сделайте перерыв, прыгайте в Vim и возвращайтесь позже. Это займет некоторое время.

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

11 голосов
/ 19 июня 2009

Вы пробовали Emacs viper-mode ?

6 голосов
/ 19 июня 2009

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

3 голосов
/ 21 сентября 2009

Будучи коллегой новообращенным и бывшим пользователем vim, я настоятельно рекомендую viper-mode. Он не идеален, но он даст вам большинство сочетаний клавиш vi / vim. Вы изучите несколько команд, к которым вы привыкли в vim (IME, в основном те, которые начинаются с 'g') без особых затруднений.

В общем, я действительно чувствую, что это лучший способ использовать Emacs. Комбинации клавиш vi действительно очень эффективны, и я думаю, что для многих вещей, которые я делаю в текстовом редакторе (простые команды перемещения, простые команды, включающие перемещение, удаление, изменение, поиск и т. Д.), Модель vi намного более обтекаемый и эффективный по сравнению с Emacs. Я могу полностью понять, почему кто-то, еще не знакомый с Emacs, не захочет использовать режим viper, но как кто-то из vim, у вас действительно есть возможность получить лучшее из обоих миров.

В общем: привыкните к тому, что viper-режим не идеален, узнайте, как делать то, что вам не хватает, с помощью Emacs, и убедитесь, что вы исследуете классные функции, которые есть в Emacs. Доступно в vim.

Что касается использования vimpulse, я попробовал его при первом переключении, и я бы не стал его рекомендовать. Так как это основной режим, вы будете упускать много (больше всего?) Положительных моментов в Emacs; и все равно он не на 100% верен в любом случае. Действительно намного лучше взять viper-mode таким, какой он есть, и двигаться дальше.

3 голосов
/ 19 июня 2009

Я думаю, это зависит от вашей мотивации изучать Emacs.

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

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

3 голосов
/ 19 июня 2009

У меня нет опыта работы с этим (я использую Vim), но Vimpulse - это скрипт Emacs для эмуляции Vim (в отличие от Viper-mode , который эмулирует vi). Это, вероятно, облегчит переход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...