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

Каков наилучший способ заставить себя овладеть vi?

Хорошо, я прочитал статью создателя viemu, расчистив много заблуждений о vi, а также объясняя, почему это хорошая идея (и почему она была очень популярна за последние 30 лет +). У этого же парня есть отличный набор графических чит-листов, которые учат основам несколько бит за раз.

Я убежден.

Я был убежден в последние 2 года на самом деле. Но я по-прежнему не собираюсь заставлять себя изучать vi в качестве основного редактора, кривая обучения слишком высока. Когда я приступаю к работе, приемлемая, но непосредственная производительность (с использованием моего текущего редактора) до сих пор завоевала огромную производительность дальше по линии (используя vi).

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

Изменить: заметьте, что я знаю vim/gVim, Cream и MacVim (и т.д.) варианты vi. Я сохранил свой вопрос о vi, чтобы обратиться к семейству vi в целом. Спасибо за все замечательные ответы.

Обновление (апрель 2009 г.)

Я использую Vim (точнее, MacVim) в повседневной профессиональной жизни с декабря прошлого года. Я не вернусь:-)

Удачи всем в их мастерстве Vim.

4b9b3361

Ответ 1

Прежде всего, вы можете забрать Vim; он имеет значительно улучшенный набор функций вместе со всем, что у vi.

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

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

Ответ 2

Первое, что я сделаю, это заложить лист бумаги или книгу над клавишами со стрелками и клавишами ins/home/end/pgup/down. В Vi нет необходимости.

Затем я привык бы нажимать Ctrl + [всякий раз, когда вам говорят, чтобы ударить. Это намного быстрее, и вам не нужно будет снимать руки с клавиатуры.

Тогда я бы посмотрел мои скринкасты:

http://www.youtube.com/watch?v=FcpQ7koECgk

http://www.youtube.com/watch?v=c6WCm6z5msk

http://www.youtube.com/watch?v=BPDoI7gflxM

http://www.youtube.com/watch?v=J1_CfIb-3X4

Затем просто практикуйте практическую практику.

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

Ответ 3

Шаг 0: научиться касаться типа. Серьезно - если ваши пальцы не знают, где ключи, то vim будет больно. И даже если вы отклоняете vim, прикоснитесь к типу улучшите свое программирование (спросите Steve Yegge), заставляя ум отслеживать свободное трение связи. Существует много software, который поможет вам улучшить вашу типизацию.

Шаг 1: используйте vimtutor, чтобы начать работу. Он находится в gvim (под меню справки, которое я думаю), или вы можете просто набрать "vimtutor" по команде линия. Это займет 30-45 минут вашего времени, а затем ваши пальцы будут знать основы vi/vim, и вы должны иметь возможность редактировать файлы без желая выбросить клавиатуру из окна.

Шаг 2: используйте vim везде. См. этот вопрос для подсказок и ссылок для использования привязок клавиш vim и vi по команде лайн, из вашего веб-браузера, для составления электронных писем, в вашей IDE... Вы необходимо использовать vim для встраивания привязок клавиш в вашу мышечную память.

Шаг 3: узнать больше о vim. Вы только поцарапаете поверхность с vimtutor. Вы можете посмотреть это видео или прочитайте в этой статье (оба "Семь привычек эффективного редактирования текста". Ты можешь читать около советы а также tricks на StackOverflow. Вы можете просматривать vimtips. Изучите litle часто был моим советом - там так много, что приклеивание к кусочкам размера укуса будет лучшим способом сделать знания придерживаться.

Шаг 4: Прибыль:)

Ответ 4

Я работаю снова, снова и снова, с vim на протяжении многих лет (выполняя случайную работу администратора sys). Я только недавно начал тратить больше времени на то, чтобы делать свою работу по программированию. Я предлагаю начать с gvim тоже. Он хорошо интегрируется с большинством ОС и (даже лучше), вы можете вернуться к мыши, когда вам нужно:).

Чтобы перейти с vim, , пройдите через vimtutor (в комплекте с gVim) один или два раза (требуется час или около того). Я не могу преувеличивать, насколько это полезно для меня! Особенно первые части о различных способах перемещения документа, а также о том, как действия редактирования записываются с помощью команд движения и т.д. И т.д. После этого все будет намного яснее.

Затем начните делать быстрые, мелкие изменения с ним (материал для заметок), пока вы не будете достаточно удобны, чтобы делать полезное редактирование при быстром клипе. Затем попробуйте сделать свою повседневную работу. Вы найдете себя в команде "повторить последнее действие" в других редакторах в кратчайшие сроки!

Ответ 5

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

Я использовал ничего, кроме vi, в течение многих лет и считаю, что единственный способ, которым вы можете быть продуктивным, - запомнить команды, которые вы регулярно используете. То, как я это делал, это сделать короткий список наиболее распространенных клавиатурных команд. Я сгруппировал и покрасил эти команды с помощью функции, т.е. Переместил курсор, редактирование, поиск и т.д. Я старался включать только наиболее часто используемые команды, которые я не знал. Идея состоит в том, чтобы создать краткую ссылку, которая также поможет в запоминании - не заменять доступные экраны справки. Затем я распечатал этот список и наклеил его на стену за монитором, чтобы я мог видеть это легко. (Графические чит-листы, которые вы упомянули, могут работать лучше для некоторых, но, вероятно, являются лучшим источником ссылок, чем инструмент запоминания.)

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

Несколько лет назад мне нужно было работать на платформе UNIX, где vi был единственным доступным редактором. Я купил небольшой справочник на vi, но вряд ли использовал его. Я закончил создание списков и разместил их на стене, как в первый раз, когда я использовал vi. К концу первой недели мне было очень удобно, хотя прошло пять лет с тех пор, как я использовал vi.

Ответ 6

Вы должны начать с vim (Vi IMproved) и особенно его GUI - gVim. В GUI есть меню, а в Windows вы можете использовать копии, вырезать и вставлять ярлыки, чтобы вы могли немедленно заменить Блокнот. А поскольку в меню отображаются ярлыки (команды vim), вы можете многому научиться.

Еще одна вещь, которую вы должны сделать с самого начала, - настроить vi для ваших нужд. Например, вы можете преобразовать vim в Python IDE. Делая это, у вас не будет оправдания для использования другого редактора, потому что vi предложит вам все, что вам нужно.

Ответ 7

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

Но вам действительно нужно знать VI, если вы делаете что-то значимое в Linux!

Итак, просто изучите основы: i = режим вставки esc = оставить режим вставки : wq = сохранить и выйти : q!= не сохранять и уходить x = если не в режиме вставки, удалите символ. /= Поиск

Это поможет вам в любой чрезвычайной ситуации. Нет ничего, что вы не можете сделать с этими небольшими командами (и, естественно, навигация). Остальное вы можете "Tack on" по мере необходимости.

Сохраняйте ссылку или книгу, хотя - когда вам НЕОБХОДИМО использовать VI, вы, вероятно, не сможете просматривать веб-страницы, но справочная страница может быть несколько полезной.

Ответ 8

Не заставляй себя. путь к овладению любовью.

Ответ 9

удалить все другие приложения для текстового редактора.

Тогда вам придется изучить его.

Ответ 10

Самый простой способ заставить себя - это просто удалить всех других редакторов с вашего компьютера. Избавиться от искушения:)

Ответ 11

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

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

  • Выбор блока (Ctrl-V)
  • Макросъемка (q)
  • Виртуальное редактирование (: set ve = all)
  • Регулярные выражения
  • Подключение к внешним программам Unix
  • Отображения клавиш
  • Автозаполнение (C-p, C-x C-p, C-x C-f)
  • Операция + комбинация движений (это удивительно мощно)

Спросите других программистов, какие функции они находят наиболее полезными, и примите те, которые лучше подходят вашему мозгу. Украдите идеи от других людей .vimrc (здесь мой)

Ответ 12

Я написал руководство по эффективное редактирование с Vim некоторое время назад. Вы можете найти это полезным.

Я бы отступил на минутку и спросил себя: "Почему я хочу изучить этот редактор? Что заставляет меня думать, что это будет быстрее или лучше моего текущего текстового редактора?" Затем изучите те функции, которые сделают Vi (m) незаменимым для вас.

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

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

Редактор-редактор вашего автопилота выберет редактор, который сделает работу быстрее и с наименьшим количеством умственных усилий. Небольшая подготовительная работа обеспечит, чтобы редактор был Vim.: -)

Ответ 13

EDIT: я создал флеш-карту, установленную на онлайн-сайте повторения flashcarddb.com, в случае, если вам интересно..

  • Используйте программу флеш-карт с интервалом повторения, такую ​​как mnemosyne, supermemo или anki, чтобы включить обучение и сохранение новых команд в повседневную жизнь. Недостаточно использовать vim в качестве ежедневного редактора. Чтобы справиться с этим, вы должны хранить эти коды в своей голове, заставляя ждать времени, когда они являются идеальным решением для этой задачи.
  • Поддерживать .vimrc с настройками
  • Напишите или отредактируйте плагин vim

Ответ 14

Две вещи, которые значительно улучшат ваши навыки vi:

  • Практика, практика, практика
  • Nethack

Ответ 15

Мое предложение: начните с малого. Просто начните с запоминания небольшого набора наиболее полезных команд. Когда я начал vi, это были мои лучшие 10:

  • (Esc), чтобы вернуться в режим команд (самое главное!)
  • a добавить текст после курсора
  • A, чтобы добавить текст в конец текущей строки
  • x для удаления 1 символа
  • dd для удаления 1 строки
  • R, чтобы заменить текст (перезаписать)
  • u для отмены
  • : д! (Enter) для выхода без сохранения
  • : w (Enter) для сохранения
  • ZZ для сохранения и выхода

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

Кстати, я бы хотел добавить, что я использовал для vi для своего основного текстового редактора, но теперь, только если это необходимо. В моем случае производительность лучше, когда я использую такие инструменты, как Emacs или Visual Studio (обратите внимание: "в моем случае" ). Попробуйте более одного инструмента и выберите тот, который больше всего помогает вашей производительности. Удачи!

Ответ 16

Звучит глупо, но играет roguelike игры (такие как Nethack или Angband) - это интересный способ получить удовольствие от использования h/j/k/l для навигации курсора.

Ответ 17

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

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

Наконец, опубликуйте список сокращенных сокращений от старого редактора до вашего нового в своем блоге.

Удачи!

Ответ 18

Не используйте X11?

$ sudu rm /usr/local/bin/emacs

Измените свою оболочку входа на vi?

Во-первых, заставьте себя использовать ed, тогда vi будет казаться роскошью?

Используйте привязки клавиш vi в bash?

Просто начните использовать vi все время?

Мне кажется, что изучение редактора не сильно отличается от изучения языка. Погружение лучше всего работает.

Я использую vi для действительно быстрых изменений или когда по какой-то причине я не могу использовать X11, но живу в emacs. Действительно мощные редакторы заслуживают внимания, чтобы узнать.

Ответ 19

Моя рекомендация - придумать некоторые простые программы и написать их, начать с конца, используя VI.

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

Я сделал это раньше, чтобы ознакомиться с средами/редакторами, и он работает очень хорошо.

Если у вас возникли проблемы с написанием вещей, я рекомендую повторить проекты, которые вы делали в школе (или что-то еще, что вы делали ранее). Этот метод имеет дополнительный бонус, позволяющий вам увидеть, какой из лучших разработчиков вы стали.:)

Изменить: забыл упомянуть, что вы должны делать это полностью с консоли, чтобы избежать соблазна использовать мышь!

Ответ 20

gVIM имеет действительно хороший учебник (ссылка в группе меню "Пуск" ).

Я нашел работу, которая помогла преодолеть начальный горб обучения; а затем переключение моей Visual Studio на ViEMU помогло мне отточить мои навыки VI.

Кроме того, скринкасты в http://vimcasts.org/ великолепны!

Ответ 21

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

Однако, я думаю, что вам нужно будет просто поглотить немного боли, и всегда, всегда, ВСЕГДА убедитесь, что вы смотрите документацию на выполнение того, что, как вы знаете, можете сделать в предыдущем редактор, например, перемещение в конец строки или выбор области текста.

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

Если у вас нет локальных ресурсов, в Интернете есть много книг/учебников/справочных листов, которые должны отвечать на большинство ваших вопросов.

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

Ответ 22

Основной причиной использования vi является ssh (или Putty в Windows): при удаленном подключении к удаленному серверу Unix, vi всегда доступен. И он работает с VT100, когда не отображаются ни клавиши курсора, ни backspace/delete.

Также очень важно иметь книгу, похожую на Справочник по редактору VI Editor.

Ответ 23

Вы можете получить доступ к одной из оригинальных клавиатур Happy Hacker (без клавиш со стрелками) и поместить вашу (беспроводную) мышь вне досягаемости при каждом редактировании.

Ответ 24

Легко выписать большой список команд/ярлыков, но трудно запомнить их все без практики.

Сфокусируйтесь на одной новой команде за раз. Когда он станет автоматическим, скажем, после его использования в течение недели или двух, добавьте еще один в свой репертуар.

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

По моему опыту было легче, когда я старался не слишком много брать.

Ответ 25

Мое предложение номер один: научись печатать быстро, без необходимости смотреть на клавиатуру.

Если вы не можете прикасаться к типу и всегда охотитесь и клюете для двоеточия или hjkl или:% s/foo/bar, забудьте об этом. Ввод может быть быстрее, чем с помощью мыши, но если это не так, vi не будет работать.

Но сочетайте хорошие навыки набора текста, ssh и screen, и vi будет естественным.

Ответ 26

Лицом к тому, что это создаст немедленный удар производительности. Когда вы изучаете новый инструмент, вам нужно сделать что-то, что вы знаете, как делать с другими инструментами, чтобы проблема не была вашей проблемой. После использования нового инструмента он исчезнет, ​​и вы будете сосредоточены только на основной проблеме.

С чем-то вроде vim (как говорили другие, vim значительно превосходит vi), важно периодически перечитывать и просматривать документацию. Интерфейс полностью не обнаруживается без него. С каждым новым чтением вы увидите функцию и скажете: "Ах, ха, это решило бы эту проблему, которую я пытался выяснить на прошлой неделе", и отложит ее в вашем мозгу. Решения, связанные с реальными проблемами, которые у вас были, намного легче запомнить, чем случайные ярлыки.

В конце вы можете использовать vim с довольно небольшим набором его функций, поэтому не перегружайтесь всеми колокольчиками и свистами. Подумайте обо всех функциях Word, 99% людей используют их?

Ответ 27

ESC gg=G для кода повторения и :retab для преобразования вкладок в пробелы или пробелы в вкладки было то, что подключало меня к vim. Поэтому на самом деле вам не нужно принуждать его использовать, вам просто нужно узнать, когда это поможет вам увеличить скорость.

Пройдите vimtutor.

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

Найдите google для хорошего .vimrc, используемого кем-то, кто использует инструментальную цепочку, которая похожа на вашу. Включите подсветку синтаксиса. Найдите красивую цветовую схему.

Изучите макросы, потому что Vim лучше всего подходит для автоматизированных задач и вставки фрагментов, например, форматирование нескольких слов в сложный тег XML или преобразование CSV в таблицу HTML.

Ответ 28

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

Итак, вы можете начать использовать Cream в качестве обычного текстового редактора, а затем экспериментировать с "экспертным режимом", пока вы не будете достаточно комфортно, чтобы полностью переключиться на vim.

Ответ 29

Установите gVim на всех платформах, которые вы используете.

Затем пройдите через vimtutor (:help vimtutor или vimtutor в командной строке).

Следите за следующей лекцией и следуйте ее совету: 7 привычек для эффективного редактирования текста 2.0

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

Это стоит усилий, и вы не оглядываетесь назад.

Ответ 30

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

В моем случае Viimu + vimperator сделал трюк.