Як звідси вийти? Шпаргалка з Vim


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Ви збираєтеся створити файл crontab і несподівано опиняєтеся в цьому дивному редакторові за умовчанням. У тому, в якому все ніяк не розберетеся.

ESC? Нічого не сталося. CTRL + C? Ні. ESC ESC ESC? Неа. Ви у безвиході.

Ну ось, знову. Схиливши голову від сорому, Ви запускаєте черговий термінал, щоб виконати команду killall vim і продовжити займатися своїми справами.

З Вами бувало таке? Звичайно, бувало. Що ж, витративши декілька хвилин на цю статтю, Ви ознайомитеся із засадами редактора Vim (і навчитеся швидко виходити з нього).

Vim за умовчанням встановлений у багатьох операційних системах (включаючи більшість дистрибутивів Linux і macOS), тому хоча б поверхневі знання про нього зайвими не будуть. Відкрийте термінал і введіть vim.

В умілих руках Vim може стати потужніше за багато IDE. І, зрозуміло, він не їсть сотні мегабайтів пам’яті лише для відображення порожнього файлу (так, Eclipse, це про тебе).

Засади

Деякі з команд, описаних нижче,  розпочинаються з двокрапки: після її натискання, з’явиться підказка, в якій буде вказана повна команда. Команди без двокрапки – це “гарячі” клавіші, які можна використати в режимі за умовчанням (у ньому запускається Vim). Команди, написані ВЕЛИКИМИ ЛІТЕРАМИ – це окремі клавіші: наприклад, ESC – це клавіша Esc на Вашій клавіатурі.

Усі команди чутливі до регістру і повинні виконуватися поза режимом insert.

Вихід з Vim

Вихід без збереження змін:

:q!

Як запам’ятати: quit dammit! (закрийся, чорт тебе бери!)

Вихід зі збереженням змін:

:wq

Як запам’ятати: write to disk and quit?

Для переміщення по відкритому файлу використайте стрілки.

Переміщення на рядок 285:

:285

Пошук слова “import” :

/import

Зміна тексту

Вставка тексту там, де стоїть курсор:

i

Як запам’ятати: insert?

Вставка тексту наприкінці поточного рядка:

A

Як запам’ятати: Append?

Вихід з режиму редагування (повернення в стандартний режим):

ESC

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

Перехід у візуальний режим:

v

Як запам’ятати: visual?

Для виділення тексту використайте стрілки.

Вихід з візуального режиму:

ESC

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

Копіювання виділеного тексту у буфер:

y

Як запам’ятати: yank?

Видалення виділеного тексту:

d

Як запам’ятати: delete

Копіювання поточного рядка у буфер:

yy

Як запам’ятати: yank yank?

Копіювання трьох рядків, включаючи поточний, у буфер:

3yy

Видалення поточного рядка і переміщення його у буфер:

dd

Як запам’ятати: delete delete?

Видалення 5 рядків, включаючи поточний:

5dd

Вставка з буфера перед поточним рядком:

P

Примітка: заголовна P

Вставка з буфера після поточного рядка:

p

Відміна і відновлення останньої зміни

Відміна останньої зміни:

u

Як запам’ятати uh-oh?

Відновлення останньої скасованої зміни:

CTRL + R

Виведення змін:

:undolist

Відміна двох останніх змін:

2u

Багаторівневе дерево відкату змін Vim дуже потужне, детальніше про нього можна почитати у документації.

Робота з файлом

Відкриття файлу index.html замість поточного:

:edit index.html

Збереження поточного файлу:

:w

Як запам’ятати: write to disk?

Збереження файлу зі зміненим ім’ям, наприклад, changes.txt:

:w changes.txt

Пошук і заміна

Пошук і заміна всіх входжень рядка у файлі:

:%s/typo/corrected/g

Пошук і заміна із запитом підтвердження заміни:

:%s/typo/corrected/gc

Как запам’ятати: confirm

Підсвічування синтаксису і відступи

Включення підсвічування синтаксису:

:syntax on

Включення автоматичних відступів:

:set autoindent

Збільшення відступів декількох рядків при виділенні їх у візуальному режимі:

>

Вкладки

Відкриття server.py у новій вкладці:

:tabe server.py

Як запам’ятати: tab edit?

Перехід на вкладку праворуч:

:tabn

Як запам’ятати: tab next?

Перехід на попередню вкладку ліворуч:

:tabp

Як запам’ятати: tab previous?

Для закриття вкладки переключіться на неї і використайте команду :q чи :wq.

Розділений екран

Відкриття templates/base.html у режимі вертикального розділення екрана:

:vs templates/base.html

Як запам’ятати: vertical split?

Відкриття shared.js у режимі горизонтального розділення екрана:

:sp shared.js

Як запам’ятати: the ‘default’ horizontal split?

Переміщення між “частинами” екрана:

CTRL + W + ARROW KEYS

Для закриття екрана перемкніться на нього і використайте команду :q чи :wq.

Налаштування Vim: файл .vimrc

Багато команд, використовуваних для зміни виду і поведінки Vim, можна зробити включеними за умовчанням, помістивши їх в .vimrc – файл конфігурації Vim, який розташований в домашньому каталозі.

Наприклад, додавання цих рядків в ~/.vimrc зробіть підсвічування синтаксису і автоматичне коригування відступів включеним за умовчанням:

syntax onset autoindent

Ідеї для кастомізації Vim можна запозичити в цьому GitHub-репозиторії.

Корисні ресурси

Ось ще декілька корисних матеріалів для вивчення Vim:

А яка команда Vim – Ваша улюблена? Може, Ви знаєте зручні прийоми? Поділіться ними в коментарях!

Переклад статті “How the hell do I exit: A beginner’s guide to Vim”

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *