Подтвердить что ты не робот

Я ищу советы для изучения Vim или Emacs умным способом

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

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

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

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

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

EDIT (при выборе "принятого ответа" )

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

4b9b3361

Ответ 1

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

Вернемся к обучению, выполнив.

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

Отъезд Vimtutor. Это интерактивный учебник, демонстрирующий мощь vim, демонстрируя его основные команды и то, как они могут быть составлены. Просто введите vimtutor в свой терминал.

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

Ответ 2

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

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

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

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

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

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

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

Ответ 3

Для vim try vimtutor

Ответ 4

Я пришел в 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, то большинство функций также доступны через меню, и вы можете видеть нажатия клавиш для той же функциональности.

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

Ответ 5

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

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

Ответ 6

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

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

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

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

Ответ 7

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

Ответ 8

Мой совет по изучению emacs заключается в том, чтобы понять, что все делается с помощью команды (написанной в elisp), которая связана (привязана) к ключевым штрихам, которые вы делаете. Сила emacs исходит из возможности писать новые команды и использовать команды, которые не привязаны к клавишам (слишком много команд для привязки каждой команды к команде.), А также, конечно, чтение и изменение команд, которые уже находятся в Emacs.

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

Будьте готовы принять учебные диверсии в руководстве emacs (Справка, Руководство по чтению, Руководство Emacs).

Ответ 9

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

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

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

Ответ 10

Ничего себе, vi/vim vs emacs, какой соблазн...

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

  • Всегда там
    vi находится примерно в любой системе unix, когда-либо выпущенной, в стандартной установке и доступной для Win
  • Может спасти вас от RSI
    vi использует ключи домашней строки практически для всех, модификаторы, такие как control и meta, используются только для редко вызываемых функций, и даже использование сменного ключа является умеренным, Вероятно, это всего лишь счастливая случайность, но не смейтесь в RSI. Это может случиться с кем угодно, это серьезно больно, это, возможно, конец карьеры, и это трудно лечить.
  • Начинается мгновенно.
    В прошлом это было огромным преимуществом по сравнению с emacs. Пользователям Emacs приходилось запускать только один раз и перемещаться повсюду в emacs. Сегодня он начинается быстрее, но в vi вполне разумно полностью отказаться от него на каждом этапе компиляции или тестирования.
  • Имеет удивительный линейный режим
    Режим линии в vi обратно совместим с исходной программой Unix ed (1), которая имеет только линейный режим. То есть, vi regular-expression-substitution-engine -/-строчный редактор был когда-то редактором сам по себе.
  • Легко настраиваемый сценарий
    Получил ли что-то, что вы хотите сделать для каждого файла .whatever в вашем проекте? Легко написать декларативный script, который будет редактировать последовательность файлов. Нет необходимости в обязательном или процедурном программировании.
  • Легко расширяемый
    Vim, по крайней мере, может быть расширен в Python.

Ответ 11

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

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

Привычки Брэма 7 - хорошие постулаты http://www.moolenaar.net/habits.html

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

Ответ 12

Возможно, хороший способ - изучить vim/emacs при использовании eclipse. Попробуйте vimplugin или emacsplus плагины для затмение.

Ответ 13

Это должен быть просто комментарий, но против которого ответ...

С Vim Я бы предложил использовать версию GUI для запуска, просто погрузиться, встроенная справка отлично (: h), а экран разбивает добавление панель с полными "гиперссылками" страниц справки). С vim единственной потенциально опасной операцией является запись, все остальное, что вы делаете, можно восстановить для каждой команды или редактировать (отменить и повторить).

Сила, приобретенная, легко стимулирует обучение.

Ответ 14

Здесь вы узнаете: Начните вводить текст. Когда вы нажмете точку, где хотите сделать что-то другое, кроме ввода, посмотрите, как вы это делаете. Повторение. Это помогает начать с нескольких основ, скажем, 7 основных команд. Кроме этого, когда вы сталкиваетесь с необходимостью выполнить некоторую операцию, посмотрите ее и используйте.

Ответ 15

Этот большой учебник был большой помощью для моих первых шагов в Vim. Это мягкое введение и объяснение в то же время философии vim приятным образом:

aByteOfVim

Ответ 16

То, как я узнал emacs, было главным образом, выполнив оба следующих действия:

  • Все меню GUI показывают вам привязки клавиш, которые вы можете использовать для выполнения той же команды, что и этот пункт меню. Обратите внимание на привязки для пунктов меню, которые вы выбрали, и попробуйте их вручную в следующий раз, когда вы получите шанс.
  • ctrl-h ctrl-h (подумайте "Help! Help!" ) вызывает буфер, который показывает различные типы доступных справок. Если вы затем нажали клавишу "b" (буфер вызывает его "описать-привязки" ), вы получите список всех привязок клавиш, доступных в буфере, над которым вы работаете. Просто просматривайте это время от времени с глазом для команд, которые выглядят полезными. Попробуйте их, когда у вас появится шанс.

Что касается vi, я узнал его за несколько дней до vim, поэтому мне пришлось использовать man vi, чтобы понять это. Большинство из нас, пользователей emacs, скажут вам, что все vi, которые вам нужно знать, это :q! ( "quit, и я действительно это имею в виду" ).:-)

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

Ответ 17

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

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

Самое главное, чтобы узнать, что Emacs Emacs Lisp - это экосистема Lisp. Изучение Emacs означает также изучение Emacs Lisp - чем больше вы знаете, тем лучше. Lisp является самым гибким и мощным способом, с помощью которого Emacs реализует себя как "самодокументирующийся, расширяемый редактор.

Icicles поможет вам изучить Emacs и Emacs Lisp. Это поможет вам спросить Emacs о себе. На этой странице дается обзор способов, которыми это делается: Emacs Newbie with Icicles.

Ответ 18

Не увлекайтесь религиозной войной vi (m) и emacs. Они оба великие редакторы. Сначала я начал с VI (настоящий VI, а не VIM), а затем начал использовать Emacs. В эти дни я, как правило, использую оба, но emacs больше, потому что emacs имеет некоторые функции, которые мне нужны, которые не находятся в vim.

Реальная задача и то, к чему вы должны стремиться, - как быть максимально эффективным, быстрым и точным с вашим редактором выбора. И VI, и Emacs могут многое предложить в этом отношении. Тем не менее, большая часть этого сводится к двум основным привычкам, которые необходимо развивать

  • Не используйте мышь. Оба редактора были созданы, когда мыши не были чумой, которой они являются сейчас. Когда дело доходит до редактирования, резки, вставки, выделения и т.д., Оба редактора предлагают эквиваленты клавиатуры. Используйте их и держите пальцы на клавиатуре. Вы будете удивлены, насколько быстрее вы станете

  • Избегайте клавиш со стрелками. Это по той же причине. Клавиши со стрелками, как правило, заставляют вас отвести руки от основной клавиатуры. В конце концов, это также замедляет вас и делает вас менее эффективным. Оба редактора обеспечивают гораздо более удобные функции, которые быстрее.

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

После того, как вы получите это, попробуйте подумать о том, как вы можете настроить свою среду в соответствии с вашими потребностями. К этому времени вы будете знакомы с полномочиями редактора, которого вы выбрали, и, вероятно, будете иметь некоторые идеи. Оба этих редактора очень настраиваются. Я нахожу emacs наиболее настраиваемым, но вы можете легко потеряться в написании elisp для настройки вещей и, прежде чем вы это узнаете, ваш программист elisp, который выполняет немного PHP и Python. В некоторой степени то же самое может произойти с VIM, но в меньшей степени. Однако обратите внимание, что настройки по умолчанию обычно устанавливаются людьми с большим опытом и, вероятно, знают что-то, чего у вас нет. Избегайте ошибки при попытке изменить любой редактор, чтобы быть тем, к чему вы привыкли. Сначала узнайте, как это работает с минимальной конфигурацией, а затем измените, как только у вас появится представление о том, почему это было сделано в некотором роде, - узнайте правила, прежде чем нарушать их.

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