Абсолютний посібник для початківців з Vim

pic

Що таке Vim і чому я повинен його використовувати? Ось що я думав два роки тому, коли мій новий професор з інформатики сказав нам використовувати Vim для всіх наших програмних завдань. Того першого дня на лекції це виглядало як сміття на його слайдах, і так воно й відчувалося при виконанні завдань протягом семестру.

Швидкий перехід до минулого року: я почав серйозно працювати над поліпшенням свого робочого процесу в програмуванні. Це привело мене до Vim. Гіркий присмак від першого знайомства з Vim ще був у роті, але фанати Vim в інтернеті були важко ігнорованими.

Тепер я став частиною цієї культури, і я поважаю своє зобов’язання поділитися цією магією з вами — без того сміття.

Що таке Vim?

Я хочу розрізнити Vim та Vim motions.

Vim (та Neovim, його новіший та яскравіший брат) — це висококонфігуровані текстові редактори без вбудованих функцій, що залишають за вами більшість налаштувань. Перехід від повноцінної IDE до глибокого занурення в цей інструмент може бути важким. Навчання Vim motions — це перший крок.

Vim motions — це команди, які використовуються в Vim для навігації, копіювання, вставки, пошуку тощо у вашому текстовому файлі без використання миші. Коли хтось каже «Я знаю Vim», зазвичай це означає, що вони знайомі з Vim motions.

pic

Vim motions — це портативний та надзвичайно корисний навик, оскільки вони підтримуються багатьма додатками. Ніхто не вивчає Vim motions і не повертається до звичайного текстового редагування.

Ця стаття є керівництвом для вивчення Vim motions.

Чому я повинен його використовувати?

Vim швидкий. Ви хочете мінімізувати витрати мозкової енергії на перетворення ідей у код. Редагуйте текст так швидко, як думаєте.

Vim цікавий. Уявіть, що ви граєте в Minecraft за допомогою миші після того, як усе життя користувалися трекпадом. Програмне забезпечення, яке швидко і зручно виконує те, що ви хочете, захоплює.

Якщо ви ще не переконалися, я дуже раджу прочитати цю статтю від Томаса Моурі, яка пояснює, чому Vim крутий.

Що для цього потрібно?

Вивчення Vim motions вимагає початкових витрат часу, але швидко дає результат.

Я досі постійно вдосконалюю свої навички, але мені знадобилося приблизно 10 днів щоденних практик, щоб досягти рівноваги, де я став таким же швидким, як був до Vim.

Це не глибокий посібник із 100 команд Vim. Це просто достатня кількість інструментів у вашому арсеналі, щоб досягти рівноваги якнайшвидше.

Початкова налаштування

Встановлення розширення Vim

Я особисто почав з простого встановлення розширення Vim для VS Code. Я рекомендую встановити розширення Vim або увімкнути режим Vim у будь-якій IDE, яку ви використовуєте.

У VS Code це так само просто, як увімкнення розширення. Ось як це зробити в IntelliJ, PyCharm, WebStorm, та Zed.

Переналаштування Caps Lock на Escape

Я вважаю це необхідним кроком.
You’ll need to hit Escape frequently and the default location on your keyboard is just not optimal (Also how often do you use caps lock?).

pic

  • Mac — Перейдіть у Налаштування > Клавіатура > Гарячі клавіші > Клавіші-модифікатори > Клавіша Caps Lock та виберіть Escape
  • Windows — Встановіть PowerToys (це інструмент від Microsoft для таких налаштувань серед інших) та перейдіть у Менеджер клавіатури > Переназначити клавішу > Caps Lock та виберіть Escape

Ось чудовий посібник про те, як це зробити, якщо ви не можете налаштувати.

Збільште швидкість повтору клавіші

Цей крок є опційним, але зробить ваш досвід більш плавним і швидким, особливо на початку.

  • Mac — Перейдіть у Налаштування > Клавіатура > Швидкість повтору клавіші та збільшіть повзунок. Для VSCode вам можливо доведеться виконати додаткову команду в терміналі для активації повторення клавіші на вашому комп'ютері. Дізнайтеся більше тут.
defaults write -g ApplePressAndHoldEnabled -bool false
  • Windows — Перейдіть у Панель управління > Значок Клавіатура > Швидкість > Швидкість повтору

Не потрапляйте в пастку Vim

Найбільша мемна проблема Vim — це коли новачки застрягають у файлі, бо не знають, як зберегти та вийти з Vim. Це сталося і зі мною.

Якщо ви використовуєте режим Vim або розширення в вашій IDE, вам не потрібно хвилюватися про це, оскільки ваші команди IDE повинні працювати нормально.

Якщо ви використовуєте справжній Vim (або Neovim), то комбінація Command-S для збереження не працюватиме.

Тут : позначає команду, w — зберегти, а q — вийти. Натискайте ENTER для виконання команди. Наразі, можна запам'ятати їх разом.

:wq(ENTER)Це зберігає та виходить.

Vim — це модальний редактор

Ваш звичайний текстовий редактор має один режим. Команди, як Command-C, Command-Z, Command-V тощо, вимагають модифікаторів, як Command, Control, Option тощо.

Vim має різні режими, кожен з яких дозволяє виконувати різні дії без потреби використовувати клавіші-модифікатори (зазвичай). У більшості розширень Vim для IDE ви можете побачити поточний режим внизу зліва.

pic

Навігація вашим файлом у Нормальному режимі

Нормальний режим не буде таким вже й нормальним. Надрукувати текст, як звичайно, не вийде. Замість цього, це потужна клавіатура, яка дає команди прямо під вашими пальцями. Давайте вивчимо кілька з них.

pic

Нормальний режим — це режим за замовчуванням. Натискайте Escape з будь-якого іншого режиму, щоб повернутися до Нормального режиму.

Ось чотири основні команди для навігації. Використовуйте їх у Нормальному режимі.

H Ліво

J Вниз

K Вгору

L Право

pic

Відчуваєте, що рухатись по одному символу дуже повільно? Вам пощастило. Ось наступні чотири команди для прискорення навігації.

B Ліво — Означає «Початок». Переміщається на початок поточного слова.

{ Вниз — Переміщається на початок поточного абзацу.

} Вгору — Переміщається в кінець поточного абзацу.

W Право — Означає «Слово». Переміщається на початок наступного слова.

pic

Використовуючи ці 8 команд, ви зможете переміщатися в будь-якому файлі. Є ще багато чого, що можна робити в Нормальному режимі, але цього для початку буде достатньо.

pic

Пишіть як зазвичай у Вставному режимі

У Вставному режимі ваша клавіатура працює так, як ви звикли. Клавіші додають символи в файл.
Це те, як ви робите додавання та редагування у вашому файлі.

i Входить у режим Вставки з Нормального режиму

Пишіть як зазвичай.

Коли закінчите, поверніться в нормальний режим, натискаючи Esc

pic

Хоча в режимі вставки можна переміщатися за допомогою стрілок, це погана звичка. Найкраще — дістатися до потрібного місця в Нормальному режимі, а потім зробити точні редагування в Режимі вставки.

Копіювання, вставка, видалення в Візуальному режимі

Візуальний режим дозволяє вибирати текст у вашому файлі. Зазвичай ви використовуєте мишу для виділення, але в Vim ми використовуємо команди з клавіатури. Як і в будь-якому іншому текстовому редакторі, ми можемо копіювати, вставляти та видаляти виділення. Ось як це робиться:

Перейдіть до місця, з якого хочете почати виділення.

Використовуйте цю команду:

v Входить у Візуальний режим з Нормального режиму

Використовуйте 8 навігаційних команд, описаних вище, щоб переміщатися та сформувати виділення.

Після того як виділення зроблено, ви можете використовувати наступні дві команди

y Означає «Янк». Копіює виділене.

d Означає «Видалити». Копіює і видаляє виділене.

Натискання будь-якої з цих команд поверне вас у Нормальний режим.

p Означає «Вставити». Вставляє після курсора.

pic

Маніпуляції з блоками тексту в Візуальному рядковому режимі

Це точно так само, як і Візуальний режим, але ви можете вибирати лише цілі рядки. Це корисно, якщо вам потрібно перемістити, видалити або скопіювати цілий абзац. Чесно кажучи, я використовую його набагато частіше, ніж звичайний Візуальний режим.

Використовуйте цю команду (зауважте, що це велика "V"):

Shift-V Входить у Візуальний рядковий режим з Нормального режиму

Натискайте y, d, p, як у Візуальному режимі.

pic

Пошук

Ви знаєте, що шукаєте у вашому файлі, але не знаєте, де це? Можливо, ви звикли використовувати Command-F. Ось як це зробити у Vim:

/ Ініціює пошук

Щоб знайти, почніть пошук, натиснувши /. Потім введіть ваш запит (технічно це регулярний вираз). Натисніть Enter.

Ви побачите результати пошуку, підсвічені. Використовуйте n і N для навігації між результатами пошуку.

n Переміщає курсор до наступного результату пошуку

N Переміщає курсор до попереднього результату пошуку

pic

Інші корисні команди

Ось кілька інших простих команд, коли ви почнете почуватися комфортно з вищеописаними:

dd Видаляє поточний рядок і копіює його в буфер обміну

yy Копіює поточний рядок

ciw «Змінити всередині слова». Видаляє слово під курсором і переводить вас у Режим вставки

Ці 20 команд достатньо, щоб зробити вас швидшим у вашій IDE, але це лише верхівка айсберга Vim.

Якщо ви вже відчуваєте себе комфортно з цими командами, залишайтеся на зв'язку, щоб дізнатися більше.

Дякую за прочитане!

Перекладено з: Absolute Beginner’s Guide to Vim