Работа с редактором VIM в Linux

Схема работы vim

Схема работы vim

Выполняется из командного режима.

Изменение режима

Команда Описание
i Переход в режим вставки (insert)
I Переход в режим вставки с начала строки (shift+i)
a Курсор вправо на 1 символ и переход режим вставки (Add)
A Переход в режим вставки с конца строки (shift+a)
o Переход в режим вставки с новой строки
O Переход в режим вставки с новой строки над текущей (shift+o)
x Удаление символа под курсором (eXclude)
r Замена символа под курсором (Replace)
v Переход в режим визуального выделения
V Переход в режим визуального выделения строк
Esc Переход в командный режим из любого режима

Навигация

Команда Описание
h j k l влево вниз вверх вправо
w К началу следующего слова (word)
e К концу следующего слова (end)
b К началу слова (begin)
ge К концу предыдущего слова (go to the end)
^ К началу текущей строки
$ К концу текущей строки
( ) К началу и концу предложения
{ } К началу и концу абзаца
1G G К началу и концу файла

Манипуляция с текстом

Команда Описание
u Отменить изменения
daw Удалить слово (delete a word)
das Удалить предложение (delete a sentence)
dap Удалить абзац (delete a paragraph)
dG Удалить содержимое файла от текущего положения курсора до конца
d1G Удалить содержимое файла от текущего положения курсора до начала
dd Вырезать строку в буфер
dw Вырезать слово в буфер
dl Вырезать символ в буфер
yy Копировать строку в буфер
yw Копировать слово в буфер
yl Копировать символ в буфер
caw Изменить слово (change a word)
cas Изменить предложение (change a sentence)
cap Изменить абзац (change a paragraph)
ctx Заменить всё до первого символа х в текущей строке (change till x)
c$ Заменить всё до конца строки
ci( Заменить всё между символами скобок
ci" Заменить всё между символами кавычек
d( или y( Вырезать или скопировать текст от текущего положения курсора до начала предложения
d) или y) Вырезать или скопировать текст от текущего положения курсора до конца предложения
d{ или y{ Вырезать или скопировать текст от текущего положения курсора до начала абзаца
d} или y} Вырезать или скопировать текст от текущего положения курсора до конца абзаца
d^ или y^ Вырезать или скопировать текст от текущего положения курсора до начала строки
d$ или y$ Вырезать или скопировать текст от текущего положения курсора до конца строки
p Вставить строку из буфера

Для того, чтобы вырезать или скопировать произвольный текст нужно перейти в режим выделения с помощью v, выделить необходимый текст, нажать d для вырезки текста или y для копирования выделенного текста. Для вставки нажать p.

Расширенные команды

Команда Описание
:wq или ZZ или :x Сохранить и выйти
:wq! Сохранить и выйти даже если права только на чтение, но текущий пользователь является владельцем или root
:q! или ZQ Выйти без сохранения
:e! Отменить изменения произошедшие с открытия файла

Нужно нажать /, затем ввести строку, которую нужно найти в тексте, например /text и нажать Enter

По умолчанию поиск осуществляется в регистрозависимом режиме. Если нужно искать независимо от регистра - добавляется сочетание \c, например: /text\c или /\ctext

Символ / осуществляет поиск вниз от курсора, а символ ? осуществляет поиск вверх от курсора

Для продолжения поиска используются клавиши: n - продолжить поиск выше по тексту, N - продолжить поиск ниже по тексту