Vim: Потужний та ефективний текстовий редактор, який вам обов’язково варто знати

pic

Логотип Vi IMproved

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

Не хвилюйтеся, якщо ви не маєте уявлення, як ним користуватися, адже саме це ми і будемо обговорювати та практикувати в цій статті.

Що таке Vim?

Vim — це текстовий редактор з відкритим кодом, що працює в командному рядку. Його створив Брам Муленар і випустив у 1991 році. Це покращена форк редактора Vi, який був створений у 1976 році Біллом Джоєм. До речі, Vim — це скорочення від Vi IMproved.

Тепер, коли ми маємо базове уявлення про Vim, давайте розглянемо основні відмінності між Vim і його попередником Vi.

Відмінності між Vi і Vim

Ось графік, що показує деякі з найбільших відмінностей між цими двома текстовими редакторами:

pic

Тепер, коли ми краще розуміємо основні відмінності між Vi і Vim, давайте навчимося, як легко ним користуватися.

Отже, почнемо 🙂

Гммм, ще не зовсім, хлопці :/

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

Режими Vim

Vim складається з кількох режимів. Ми зосередимося на найвідоміших з них.

Серед найвідоміших режимів можна виділити:

Нормальний режим

Це режим за умовчанням, коли ми запускаємо Vim.

Цей режим дозволяє нам виконувати дії, такі як перехід по тексту, заміна тексту, копіювання, вставка, видалення або вирізання тексту.

pic

Нормальний режим Vim

Режим вставки

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

Щоб увійти в режим вставки з нормального режиму, потрібно просто використати команду для введення.
Один з них — це ‘ i ’ який переведе vim в режим вставки.

Після введення цієї команди, ви зможете редагувати свій файл так, як хочете.

Загалом, коли ви переходите з одного режиму в інший, ви можете помітити в нижньому лівому куті вашого екрану такі позначки, як: __ INSERT __ для режиму вставки, __ REPLACE __ для режиму заміни, __ VISUAL __ для візуального режиму.

pic

Режим вставки Vim

Візуальний режим

За умовчанням, Vim не підтримує мишу (все робиться за допомогою клавіатури).

Проте іноді нам потрібно вибрати текст або блок тексту для виконання таких операцій, як видалення, копіювання або вставка його кудись у нашому файлі.

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

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

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

pic

Візуальний режим Vim

Командний режим

Цей режим використовується для введення команд, які не підтримуються іншими режимами.

Щоб увійти в командний режим, спочатку потрібно бути в нормальному режимі, потім натискати:

: для виконання команд

:? або / для команд пошуку за шаблоном

! для фільтраційної команди

Добре відома команда — :wq, яка використовується для збереження та виходу з файлу.

pic

Командний режим Vim

Режим заміни

Цей режим використовується для заміни одного або кількох входжень вказаного рядка.

Щоб увійти в режим заміни, спочатку потрібно бути в нормальному режимі, потім натиснути ‘R’ (велика літера, інакше ви зможете змінити лише один символ, а не рядок).

Після цього ви можете замінити символ або слово з поточної позиції курсора.

pic

Режим заміни Vim

Отже, до цього моменту ми розглянули деякі з різних режимів Vim, а саме нормальний режим, режим вставки, візуальний режим, командний режим та режим заміни.

Тепер настав час для практичних прикладів.

Приготуйтесь, на старт, увага, рушаймо 🙂

Команди Vim

В цьому розділі ми поглибимося в кілька корисних команд Vim.

Щоб зробити все максимально зрозумілим, я вирішив поділити це на п’ять підрозділів.

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

Також ви можете перед кожною командою поставити ціле число n ось так: nCmd, де n — це ціле число, а Cmd — це команда Vim.

Основні команди

У цьому розділі ми розглянемо кілька команд, які слід знати для подальшої роботи.

Встановлення Vim

Іноді Vim може не бути встановлений у вашій системі.

У таких випадках перше, що потрібно зробити, — це встановити його.

Залежно від вашого дистрибутива GNU/Linux, ви можете встановити Vim наступним чином:

Дистрибутиви на базі Debian: sudo apt install vim -y

Дистрибутиви на базі RPM: yum install vim -y

Після успішного встановлення Vim, давайте запустимо його!

Запуск Vim

Щоб запустити Vim, введіть у вашому терміналі:

Синтаксис: vim [options][file_path]

Примітка: Не обов'язково, щоб шлях до файлу існував перед використанням Vim.

pic

Відкриття нового файлу в Vim

Можливо, ви помітите слово [New] в нижньому лівому куті на зображенні вище.

Як видно з назви, це слово означає, що Vim відкрив новий файл для редагування.

Тепер давайте напишемо трохи тексту у нашому файлі. Для цього натисніть :i, потім введіть текст, який ви хочете додати у файл.

Після завершення натисніть клавішу esc.

Чудово! Ймовірно, ви тепер задумалися, як вийти з Vim!

Усе, що вам потрібно — це натиснути ctrl+c 🙃!

Ох, я боюся, я помилився😜.
Насправді, щоб вийти з Vim, ви можете використати:xq, :q! ,ZZ або ZQ.

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

pic

Основні команди Vim

Чудово👍! Тепер, коли ви знаєте основи Vim, давайте перейдемо до інших цікавих команд Vim.

Команди нормального режиму

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

Навігація

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

Давайте поглянемо на таблицю нижче, яка підсумовує команди навігації в Vim.

pic

Команди навігації

Приклади:

Тепер давайте попрактикуємось, виконавши кілька команд навігації.

Для цього відкрийте непорожній файл, який ви вже створили, ввівши в термінал команду: vim your_file_name

Потім введіть наступні команди, щоб побачити, як це працює.

2j : переміститися вниз на вісім рядків

4b : переміститися назад на два слова

6} : переміститися вниз на шість абзаців

8l : переміститися на наступні вісім символів

Примітка: Можна використовувати клавіші стрілок замість h,j,k та l для переміщення в файлі. Однак це не є «vim-стилем» виконання операцій.

Заміна тексту

Щоб замінити текст у Vim, ми можемо використовувати команди, зазначені в підсумковій таблиці нижче:

pic

Команди заміни тексту

Приклади:

ro : замінити вибраний поточний текст на o

3cw : замінити наступні 3 слова від поточної позиції курсора.

2S : змінити наступні два рядки, а потім перейти з нормального режиму в режим вставки.

Копіювання і вставка тексту

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

Хмм, добре! Але що саме означає yank?

Yank — це термін із Unix, який трохи відрізняється від копіювання.

Насправді, при використанні yank, наша інформація не зберігається в буфері обміну, на відміну від копіювання.
Насправді текст заноситься в буфер для подальшого використання.

Ось деякі з команд, які ми можемо використовувати:

pic

Команди для копіювання та вставки тексту

Приклади:

5Y : копіювати наступні 5 рядків від поточної позиції курсора.

7p : вставити скопійований текст 7 разів вниз.

y9w : копіювати наступні 9 слів від поточної позиції курсора.

Видалення тексту

Ось деякі команди, які використовуються для видалення тексту в Vim:

pic

Команди для видалення тексту

Команди командного режиму

Щоб освіжити вашу пам’ять, командний режим використовується для пошуку шаблонів, фільтрації команд та виконання команд.

Давайте розглянемо ці три випадки використання командного режиму.

Виконання команд

Щоб використовувати цей режим, спочатку потрібно бути в нормальному режимі.

Далі натискаєте двокрапку ‘:’, а потім команду, яку ви хочете виконати.

Припустимо, що ми відкрили файл з іменем f1 у Vim.

Тепер ми можемо виконати деякі маніпуляції з цим файлом за допомогою команд виконання.

Також ми побачимо такі можливості, як включення підсвічування тексту, нумерація рядків і мишка у Vim.

pic

Команди для виконання команд

Пошук шаблонів

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

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

pic

Команди пошуку шаблонів

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

Фактично, окрім першої команди в наведеній таблиці, всі інші команди є командами виконання.

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

Приклади:

Для цього ми використаємо наступні команди пошуку шаблонів:

# Заміна всіх входжень 'Vi' на 'Vim' у файлі f1  
: %s/Vi/Vim/g  

# Замінити лише перше входження 'Vi' на 'Vim' в перших двадцяти рядках  
:1,20s/.*Vi/Vim/  

# Замінити всі входження 'Vi' на 'Vim' у кожному слові, що містить 'Vi' у файлі  
:1,$s/.*Vi/Vim/g  

# Замінити всі входження 'Vi', що знаходяться на початку файлу, на Vim  
:1,$s/^Vi/Vim/g

Фільтрація команд

Фільтрація команд — це ще один підрежим командного режиму, який можна використовувати для виконання bash команд із Vim або скасування змін у файлі.

Ось кілька способів використання цієї функції:

:!bash запустить нову сесію bash.
Коли ви завершите сесію, введіть exit, щоб вийти з неї, а потім натисніть enter, щоб повернутися до Vim.

Отже, це все щодо команд командного режиму.

Тепер давайте перейдемо до режиму вставки.

Команди режиму вставки

Простими словами, режим вставки — це один із режимів vim, який дозволяє вставляти текст у наш файл.

Ось деякі команди для вставки тексту у файл:

pic

Команди для вставки тексту

Для цієї секції я дам вам можливість протестувати команди нижче у вашому редакторі Vim, оскільки вони доволі інтуїтивні.

Візуальний режим

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

Для цього достатньо натиснути клавішу ‘v’, а потім вибрати текст за допомогою навігаційних команд або миші, якщо вона увімкнена.

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

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

Режим заміни

Цей режим інтуїтивно зрозумілий, оскільки все, що потрібно, — це натискати клавішу R, а потім замінювати всі символи, які ви хочете, починаючи з поточної позиції курсора.

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

Підсумок!

  • Vi IMproved — це потужний та ефективний текстовий редактор, заснований на командному рядку, який може стати чудовим, якщо добре його освоїти.
  • Vim — це вдосконалена версія Vi, яка мала деякі обмежені функції.
  • Vim складається з багатьох режимів. Деякі з них — це нормальний режим, режим вставки, командний режим, режим заміни та візуальний режим. Кожен режим має свій набір команд для виконання конкретних завдань.
  • Vim може здатися складним, коли ви використовуєте його вперше. Однак пам'ятайте, що кожен старт — це не завжди легко. Потрібно практикуватися знову і знову, робити кілька помилок, трохи розчаруватися (так, так), перш ніж ви почнете по-справжньому насолоджуватися потужністю цього редактора.

Чудова робота, хлопці 👏!

Сподіваюся, ви дізналися щось нове.

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

Обіцяю, ви швидко побачите результати.

Дякую, що підписалися на мою розсилку, щоб бути в курсі моїх останніх статей.

Перекладено з: Vim: The powerful and efficient text editor that you should know

Leave a Reply

Your email address will not be published. Required fields are marked *