Що таке Vim і чому я повинен його використовувати? Ось що я думав два роки тому, коли мій новий професор з інформатики сказав нам використовувати Vim для всіх наших програмних завдань. Того першого дня на лекції це виглядало як сміття на його слайдах, і так воно й відчувалося при виконанні завдань протягом семестру.
Швидкий перехід до минулого року: я почав серйозно працювати над поліпшенням свого робочого процесу в програмуванні. Це привело мене до Vim. Гіркий присмак від першого знайомства з Vim ще був у роті, але фанати Vim в інтернеті були важко ігнорованими.
Тепер я став частиною цієї культури, і я поважаю своє зобов’язання поділитися цією магією з вами — без того сміття.
Що таке Vim?
Я хочу розрізнити Vim та Vim motions.
Vim (та Neovim, його новіший та яскравіший брат) — це висококонфігуровані текстові редактори без вбудованих функцій, що залишають за вами більшість налаштувань. Перехід від повноцінної IDE до глибокого занурення в цей інструмент може бути важким. Навчання Vim motions — це перший крок.
Vim motions — це команди, які використовуються в Vim для навігації, копіювання, вставки, пошуку тощо у вашому текстовому файлі без використання миші. Коли хтось каже «Я знаю Vim», зазвичай це означає, що вони знайомі з Vim motions.
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?).
- 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 ви можете побачити поточний режим внизу зліва.
Навігація вашим файлом у Нормальному режимі
Нормальний режим не буде таким вже й нормальним. Надрукувати текст, як звичайно, не вийде. Замість цього, це потужна клавіатура, яка дає команди прямо під вашими пальцями. Давайте вивчимо кілька з них.
Нормальний режим — це режим за замовчуванням. Натискайте Escape
з будь-якого іншого режиму, щоб повернутися до Нормального режиму.
Ось чотири основні команди для навігації. Використовуйте їх у Нормальному режимі.
H
Ліво
J
Вниз
K
Вгору
L
Право
Відчуваєте, що рухатись по одному символу дуже повільно? Вам пощастило. Ось наступні чотири команди для прискорення навігації.
B
Ліво — Означає «Початок». Переміщається на початок поточного слова.
{
Вниз — Переміщається на початок поточного абзацу.
}
Вгору — Переміщається в кінець поточного абзацу.
W
Право — Означає «Слово». Переміщається на початок наступного слова.
Використовуючи ці 8 команд, ви зможете переміщатися в будь-якому файлі. Є ще багато чого, що можна робити в Нормальному режимі, але цього для початку буде достатньо.
Пишіть як зазвичай у Вставному режимі
У Вставному режимі ваша клавіатура працює так, як ви звикли. Клавіші додають символи в файл.
Це те, як ви робите додавання та редагування у вашому файлі.
i
Входить у режим Вставки з Нормального режиму
Пишіть як зазвичай.
Коли закінчите, поверніться в нормальний режим, натискаючи Esc
Хоча в режимі вставки можна переміщатися за допомогою стрілок, це погана звичка. Найкраще — дістатися до потрібного місця в Нормальному режимі, а потім зробити точні редагування в Режимі вставки.
Копіювання, вставка, видалення в Візуальному режимі
Візуальний режим дозволяє вибирати текст у вашому файлі. Зазвичай ви використовуєте мишу для виділення, але в Vim ми використовуємо команди з клавіатури. Як і в будь-якому іншому текстовому редакторі, ми можемо копіювати, вставляти та видаляти виділення. Ось як це робиться:
Перейдіть до місця, з якого хочете почати виділення.
Використовуйте цю команду:
v
Входить у Візуальний режим з Нормального режиму
Використовуйте 8 навігаційних команд, описаних вище, щоб переміщатися та сформувати виділення.
Після того як виділення зроблено, ви можете використовувати наступні дві команди
y
Означає «Янк». Копіює виділене.
d
Означає «Видалити». Копіює і видаляє виділене.
Натискання будь-якої з цих команд поверне вас у Нормальний режим.
p
Означає «Вставити». Вставляє після курсора.
Маніпуляції з блоками тексту в Візуальному рядковому режимі
Це точно так само, як і Візуальний режим, але ви можете вибирати лише цілі рядки. Це корисно, якщо вам потрібно перемістити, видалити або скопіювати цілий абзац. Чесно кажучи, я використовую його набагато частіше, ніж звичайний Візуальний режим.
Використовуйте цю команду (зауважте, що це велика "V"):
Shift-V
Входить у Візуальний рядковий режим з Нормального режиму
Натискайте y
, d
, p
, як у Візуальному режимі.
Пошук
Ви знаєте, що шукаєте у вашому файлі, але не знаєте, де це? Можливо, ви звикли використовувати Command-F
. Ось як це зробити у Vim:
/
Ініціює пошук
Щоб знайти, почніть пошук, натиснувши /
. Потім введіть ваш запит (технічно це регулярний вираз). Натисніть Enter
.
Ви побачите результати пошуку, підсвічені. Використовуйте n
і N
для навігації між результатами пошуку.
n
Переміщає курсор до наступного результату пошуку
N
Переміщає курсор до попереднього результату пошуку
Інші корисні команди
Ось кілька інших простих команд, коли ви почнете почуватися комфортно з вищеописаними:
dd
Видаляє поточний рядок і копіює його в буфер обміну
yy
Копіює поточний рядок
ciw
«Змінити всередині слова». Видаляє слово під курсором і переводить вас у Режим вставки
Ці 20 команд достатньо, щоб зробити вас швидшим у вашій IDE, але це лише верхівка айсберга Vim.
Якщо ви вже відчуваєте себе комфортно з цими командами, залишайтеся на зв'язку, щоб дізнатися більше.
Дякую за прочитане!
Перекладено з: Absolute Beginner’s Guide to Vim