Visual Mode
Визуальный режим позволяет нам выделять в своих рамках текст.
Всего сущесвует несколько типов разных визуальных режимов:
v
- простой визуальный режим. Текст выделяется при перемещении курсора.V
- реэим выделения строк.
ctrl + shift + v
- визуальный блок-режим. Выделяется прямоугольный блок текста. Зачастую нужен для столбцеобразных данных.
В визуальном режиме работают так же все команды и удобно комбинировать d
/ dw
, y
/ yy
, c
/ cw
Весь текст, поверх которого мы вставляем наш текст, будет попадать в регистр
Самый сэмпловый пример использования: скопировал слово yw
, вставил поверх vwp
Изменение регистра
u
- в обычном режиме отменяет изменения. В режиме выделения он меняет регистр букв.
U
- меняет на верхний регистр.u
- меняет на нижний регистр.
veU
- поменяет регистр на верхний
~
- также меняет регистр, но без дополнительного выделения. Просто переходим на нужный символ без выделения и используем.
V-Line Mode
V
- включает режим выделения строк. Этот режим позволяет выделать нам сразу целые группы строк и так же позволяет рабоатать с d
, y
, p
.
Обычно, для перемещения строк мы используем удаление и вставку dd + P
. Этот режим имеет особенную синергию с командой :m
, которая позволяет перемещать выделенные строки туда, куда мы укажем.
:m10
- переместит на десятую строку
:m+10
- переместит на 10 строк вниз (так же можно указать и -
)
Сама по себе команда :m
работает и без режима выделения, но она здорово помогает с переносом большого количества строк.
V-Block Mode
ctrl + v
/ ctrl + V
переводит нас в режим визуального блочного выделения. Этот режим повзоляет выбирать многострочным образом, но не захватывая строки целиком, а в радиусе блока
Удобен он тем, что его можно использовать как:
- Мультикурсор - редактирование одинаковым образом сразу нескольких строк
- Выделение блока - выделение по параллелепипеду
Чтобы пе6рейти к редактированию на том блоке, который мы выделили, мы должны:
- выделить блок
- нажать на
I
- начать вводить первую строку
- выйти из режима, чтобы принять изменения из одной строки сразу во все выделенные
Удаление уже работает проще и оно просто на d
удаляет выделенный участок.
Вставка через p
/P
сразу будет многострочной.
Макросы
Макрос - это инструмент Vim, который позволяет в одно движение выполнять однотипные действия.
Очень удобны макросы для того, чтобы в одно движение модифицировать большое колчиество текста aka кода.
Например, у нас есть много обычных функций, которые мы хотим перевести в стрелочные:
Начать записывать макрос можно на q
. Далее нам нужно указать ячейку, в которую будем записывать макрос - тоже можно q
. И теперь все наши действия записываются до тех пор, пока мы ещё раз не нажмём q
, чтобы зафиксировать эти изменения.
cw const esc f( i = esc f{ i =>
- этим небольшим набором действий мы превратили из обычной функции в стрелочную
И теперь мы можем применить этот макрос сочетанием @q
, где второе значение - ячейка макроса