Позвольте мне начать с радикального обобщения: все, кто думает, что у vim невозможна кривая обучения, ошибаются. Конечно, вы можете увидеть, как кто-то создает магию с помощью нескольких нажатий клавиш. И это правда, что люди потратили буквально десятилетия, совершенствуя искусство vim. Да, они могут завершить то, что у вас займет 10 минут, в вашей любимой среде IDE (или редакторе кода) за считанные секунды. Но не позволяйте этому унывать. Эти люди не истари, они такие же, как ты (только круче).

Этот пост не является учебным пособием, это попытка рассказать мою историю и попытаться направить вас по пути vim✌

PS. Я предполагаю, что вы, по крайней мере, знаете, что такое vim. Если нет, перейдите сюда: О нас.

Скромное начало (или как выйти из vim)

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

Нажмите кнопку Esc (для хорошей оценки), затем нажмите кнопку :, затем q и, наконец, нажмите Return/Enter. Et voilà, вы успешно вышли из vim.

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

Клавиши перемещения: h, j, k, l

Редактирование ключей: i, x, d, a, y, p

Клавиши режимов: Esc, v, i

Командные клавиши: :e, :w, :q

Клавиши перемещения слов: w, e, b

Не волнуйтесь, это не шпаргалка или руководство, в котором я учу вас каждой команде. Это работа vimtutor, лучший способ практиковать свои навыки vim. Я просто объясню, как пытался грокнуть vim. Вышеупомянутые ключи предназначены не для запоминания, а для того, чтобы вернуться после того, как вы проведете пару часов с vimtutor и поймете, что это все, что вам нужно, чтобы начать свое путешествие по vim.

Мои первые несколько недель

В колледже я работал специалистом по Sublime Text. Но времена изменились, и теперь я перешел на… как вы уже догадались, VS Code! Но это было не раньше, чем у меня был роман с vim. Я предпочитаю VS Code по разным причинам, и ни одна из них не скорость. Видите ли, я видел, как быстро я могу писать vim, и когда я переключился на VS Code, я принес свою скорость с расширением vim. Возможно, он не будет использоваться в каждом проекте, но я обязательно переключаюсь на него, когда мне нужно обработать данные или изменить мои скрипты.

Я рассказываю вам эту историю как поучительную, басню, мораль которой такова:

Не жонглируйте редакторами, особенно когда вы учите основы.

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

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

В момент щелчка

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

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

Небольшой пример: d2w - это команда, которая d отбирает 2 недели. Я знал эту команду с первой недели работы с vim. Но в один прекрасный день меня ударило как тонна кирпичей. Я могу использовать этот паттерн по-разному.

  1. y5j копирует (копирует) на 5 строк под курсором
  2. d10b удаляет десять слов перед курсором
  3. c2k удаляет 2 строки над курсором и переводит вас в режим вставки

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

Путь вперед

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

~/.vimrc настройка файла, позволит вам изменить почти все, что вы хотите о поведении vim по умолчанию.

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

Вы можете выбрать между Vundle, pathogen и vim-plug в качестве менеджера пакетов. Затем вы можете заглянуть на этот сайт, чтобы найти все самые последние и лучшие пакеты.

Вкладки, Windows, Макросы - это то, что я определенно рекомендую вам попробовать. Но это ваше путешествие, так что читайте ресурсы и сделайте свое путешествие по vim уникальным и незабываемым.

Ресурсы

Вы можете проверить эти ресурсы. Они очень помогли мне в изучении и любви к vim. YMMV

Классное видео о vim и tmux: https://youtu.be/5r6yzFEXajQ

Памятка по Vim: https://vim.rtorr.com

Мое самое первое взаимодействие с vim: http://www.openvim.com/

Если вы хотите, чтобы ваш мозг взорвался: https://vimeo.com/17007435