Я ищу советы для изучения Vim или Emacs умным способом - PullRequest
39 голосов
/ 28 ноября 2009

Я довольно счастливый пользователь Eclipse (я в основном разрабатываю на PHP и Python), однако я нашел ответы на вопрос "Какой конкретный прирост производительности Vim / Emacs обеспечивает по сравнению с текстовыми редакторами GUI?" интересно достаточно, чтобы я захотел попробовать Vim или Emacs и посмотреть, не окажется ли это лучшим решением для меня.

У меня общее ощущение, что Vim и Emacs - это не тот редактор, который вы изучаете, "играя с ним". У меня сложилось впечатление, что вы должны посвятить некоторое время и усилия, чтобы немного «изучить» их, прежде чем вы сможете воспользоваться их силой.

Итак, у меня есть два вопроса к сообществу:

  1. В связанной ветке респонденты, по сути, ответили, комментируя Vim (часто говоря: «Я уверен, что Emacs имеет то же самое»). Тенденции Google , кажется, указывают, что Vim является наиболее приемлемым из двух, однако мой первый вопрос: зная, что у меня нет никакого предшествующего опыта по любому из двух, и что я использую и развиваю ( в основном на PHP и Python) в системах GNU / Linux (Ubuntu, Arch Linux ), есть ли какая-либо из двух, которая представляла бы лучший вариант для начала? (Для ясности: мой вопрос не о качестве редакторов, а о том, что стратегически лучше выучить в моей ситуации).

  2. Какой совет вы бы дали мне о том, как научиться использовать его / их? Я знаю, что это широкий вопрос, но это намеренно. Посмотрите на этот ответ (несвязанная тема), чтобы получить представление о том, какую информацию / стиль ответа я ищу [но не чувствую себя обязанным ответить таким образом ... любой вклад будет приветствоваться в любой форме!]

РЕДАКТИРОВАТЬ (при выборе «принятого ответа»)

Я выбрал один ответ в качестве принятого только сейчас, но я хотел бы сказать "спасибо" всем тем, кто поделился своим опытом и советами: почти все это было полезно для меня в каким-то образом. Нить окончательно превзошла мои ожидания! Спасибо! :)

Ответы [ 18 ]

34 голосов
/ 29 ноября 2009

Я бы советовал, что проверка обоих стоит времени из-за различных причин, уже рассмотренных в других ответах или темах "Emacs vs vim vs XY".

Тем не менее, если бы вам пришлось выбрать один из них, я бы пошел с vim из-за одной вещи:

Наличие

Vi (m) имеет преимущество в том, что он установлен (не только доступен) по умолчанию практически в любой системе * nix. Поэтому независимо от того, является ли это вашей системой или чьей-либо другой, или вам разрешено вносить в нее изменения или нет, ваш любимый текстовый редактор и ваш друг ждут вас.

Как только вы знаете vi (m), вы чувствуете себя превосходно в тех ситуациях, когда вы подключаетесь к компьютеру по ssh и вам нужно что-то делать с текстом (навигация по файлу, редактирование, что угодно). Ты будешь чувствовать себя королем. Я помню несколько раз, когда я чуть не испугался, потому что nano или pico не были установлены, и мне пришлось использовать «этот уродливый зверь vi», который делал непредсказуемые вещи, когда я начинал печатать (потому что я не был в режиме вставки и даже не знал что это было) и когда я был счастлив, что погуглил, что ": WQ!" возвращает меня из ада. Теперь я могу оглянуться назад и улыбнуться об этом.

У меня общее чувство, что vim и Emacs не тот тип редактора вы учитесь, "играя с этим", хотя

Vim и Emacs, безусловно, являются редакторами, которых вы " изучаете, делая ".

Конечно, этот вопрос требует включения этих очень научных графиков кривых обучения текстового редактора =)

classical learning curves for some common text editors

Поначалу Vim может быть немного сложнее, потому что его модальное редактирование поначалу может показаться незнакомым. Я думаю, что мотивация является ключом здесь. Статья " Почему, о, ПОЧЕМУ, эти #? @! Чокнутые используют vi? ", я думаю, что преимущества достаточно хорошо объясняются. По моему мнению, действительно стоит попробовать, даже если кривая обучения может быть круче, чем у других редакторов, и звучит так, будто вы привнесли необходимую мотивацию.

Вернуться к обучение, делая .

Что-то, что я хотел бы сделать в первый раз:

Выезд Vimtutor . Это интерактивное учебное пособие, которое демонстрирует силу vim, демонстрируя его основные команды и способы их составления. Просто наберите vimtutor в своем терминале.

Это помогло мне действительно " получить это " после попытки научиться редактировать с vim несколько раз в прошлом. Учебное пособие значительно облегчает процесс обучения, поскольку оно объясняет команды и заставляет их фактически выполнять их, чтобы они стали привычкой. Это действительно имеет значение по сравнению с разочарованием из-за чувства инвалидности. Используя vimtutor, вы также увидите, каковы преимущества модального редактирования, и вместо того, чтобы бороться с ним или игнорировать его, вы будете использовать его, потому что вы испытали преимущества из первых рук. Я думаю, что было бы довольно трудно изучить это самому. Так что эти 30 минут вполне стоят того.

14 голосов
/ 28 ноября 2009

У меня общее ощущение, что vim и emacs - это не тот редактор, который вы выучите, "играя с ним".

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

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

* Обратите внимание, что связанная справочная карта устарела. Если вы пользуетесь Google, вы можете получить более актуальную справочную карту.

зная, что у меня нет до испытать что-либо на любом из два, и что я использую и развиваю (в основном PHP и Python) в GNU / Linux системы (Ubuntu, Archlinux), есть ли любой из двух, который будет представлять лучший вариант для начала?

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

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

10 голосов
/ 28 ноября 2009

Для vim попробуйте vimtutor

7 голосов
/ 28 ноября 2009

Я пришел в Vim, когда начал использовать Linux после нескольких лет разработки Windows, и мне пришлось много работать на удаленных системах через ssh. Первые пару недель это ненавидело. После этого я не мог жить без него.

Вероятно, лучший способ начать это использовать Vim в простом режиме ([g] vim -y), в большинстве установок есть ярлык, называемый evim. Это запускает vim в режиме, который по умолчанию находится в режиме вставки и переназначает ключи на обычные ключи Windows (Ctrl-S для сохранения, Ctrl-X для вырезания и т. Д.). Затем вы можете использовать его как обычный редактор Windowsy, но при этом пользоваться возможностями Vim.

Существует также Cream , который представляет собой Vim + набор сценариев, чтобы заставить его вести себя еще больше, как редактор Windows.

Я начал использовать evim и Cream, но обнаружил, что постепенно перешел на использование 100% vim.

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

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

4 голосов
/ 28 ноября 2009

Используя VIM, я нахожу следующую справочную карточку очень полезной, особенно для вещей, которыми я не занимаюсь каждый день: VIM QuickReference

Для emacs вы должны прочитать GNU Emacs Manual . Не пытайтесь делать все сразу. Начните с основных вещей, а затем переходите к более мощным функциям, как только вы освоитесь с более легкими вещами.

4 голосов
/ 29 ноября 2009

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

В настоящее время я использую плагин Eclipse под названием vrapper , который предоставляет мне почти все основные функции vim в Eclipse без потери каких-либо функциональных возможностей Eclipse. Конечно, это не полнофункциональный vim, но он дал мне ожидаемый прирост производительности (движения, оператор точки, регистры и отметки). Кроме того, этот плагин можно считать «пробной» версией vim, где вы можете изучить все базовые и некоторые дополнительные вещи в вашей «самой известной» среде.

Существует еще один интересный подход, который называется eclim . Eclim интегрирует Eclipse с vim со стороны vim, поэтому вы можете использовать многие функции из Eclipse в vim.

Для изучения основ vim эта графическая таблица мне очень помогла.

3 голосов
/ 28 ноября 2009

Я бы пошел на Emacs. Явное имя команды облегчит вашу задачу. Я перешел на emacs после многолетнего опыта работы с vi и никогда не оглядывался назад. Пойдите с учебником сначала. Общайтесь на #emacs в irc, и люди с радостью помогут вам в реальном времени и предоставят вам больше информации

2 голосов
/ 29 ноября 2009

Прежде всего, будь скромным.

Пока вы осознаете, что это очень мощные инструменты, с вами все будет в порядке. Если вы находите задачу очень трудной и думаете: «Только я не отстой, а редактор», вы в правильном уме, чтобы учиться и улучшаться.

7 привычек Брэма - хороший принцип http://www.moolenaar.net/habits.html

Также я настоятельно рекомендую попробовать написать плагин. Неважно, что он делает. Это дает вам стимул углубиться в руководства.

2 голосов
/ 29 ноября 2009

Ух ты, vi / vim vs emacs, что за искушение ...

С точки зрения пользователя vi ...

  • Always There
    vi включена для всех когда-либо выпущенных систем Unix, при установке по умолчанию и доступна для Win
  • Может спасти вас от RSI
    vi использует ключи домашней строки практически для всего, модификаторы, такие как control и meta, используются только для редко вызываемых функций, и даже использование клавиши shift является умеренным. Вероятно, это всего лишь случайность, но не смейтесь над RSI. Это может случиться с кем угодно, это серьезно больно, это может закончить карьеру, и это трудно поддается лечению.
  • Запускается мгновенно .
    В прошлом это было огромное преимущество перед emacs. Пользователи Emacs должны были запускаться только один раз и перемещаться по всему Emacs. Сегодня он запускается быстрее, но в vi вполне разумно полностью выходить из него при каждом цикле компиляции или тестирования.
  • Имеет потрясающий режим строки
    Режим строки в vi обратно совместим с оригинальной программой Unix ed (1), редактором, в котором была только строка Режим. То есть строковый редактор регулярных выражений - / - line-editor когда-то сам по себе был редактором.
  • Простой сценарий
    У вас есть что-то, что вы хотите сделать с каждым .whatever файлом в вашем проекте? Легко написать декларативный скрипт, который будет редактировать последовательность файлов. Нет необходимости в императивном или процедурном программировании.
  • Легко расширяемый
    Vim, по крайней мере, может быть расширен в Python.
2 голосов
/ 28 ноября 2009

Один аргумент в пользу Vim, если вы знаете Python, заключается в том, что вы можете писать скрипты Vim на Python. Смотри :h python. Emacs требует от вас изучения elisp.

Я склоняюсь к Vim для языков сценариев, таких как Ruby / Perl / Python / PHP, и для Emacs для языков, которые более интерактивны (по сути, Lisp). Если вы много раз разрабатываете свой код Python, используя интерактивную оболочку Python, Emacs может подойти, потому что вы можете встроить оболочку Python прямо в Emacs. Если вы пишете код и часто запускаете его из командной строки, Vim может справиться с этим достаточно просто с помощью :make или :!.

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

...