Перейти к содержанию

Vim

Vim — консольный текстовый редактор с модальным управлением.

Режимы Vim

Команда Описание
i перейти в Insert mode перед текущим символом
a перейти в Insert mode после текущего символа
I перейти в Insert mode в начале строки
A перейти в Insert mode в конце строки
o создать новую строку ниже и перейти в Insert mode
O создать новую строку выше и перейти в Insert mode
Esc вернуться в Normal mode
v Visual mode — посимвольное выделение
V Visual Line mode — выделение строк
Ctrl+V Visual Block mode — блочное выделение

Перемещение

Команда Описание
h один символ влево
j одна строка вниз
k одна строка вверх
l один символ вправо
w перейти к началу следующего слова
b перейти к началу предыдущего слова
e перейти к концу слова
0 перейти в начало строки
^ перейти к первому непробельному символу строки
$ перейти в конец строки
gg перейти в начало файла
G перейти в конец файла
10G перейти на строку №10
Ctrl+F прокрутить экран вперёд
Ctrl+B прокрутить экран назад

Редактирование

Команда Описание
x удалить символ под курсором
dd удалить текущую строку
D удалить от курсора до конца строки
dw удалить от курсора до начала следующего слова
d$ удалить от курсора до конца строки
cc заменить всю текущую строку
cw изменить слово от курсора
C заменить текст от курсора до конца строки
r заменить один символ
u отменить последнее изменение
Ctrl+R повторить отменённое изменение (redo)
. повторить последнее изменение

Копирование и вставка

Команда Описание
yy скопировать текущую строку
yw скопировать текст до начала следующего слова
y$ скопировать от курсора до конца строки
p вставить после курсора / ниже текущей строки
P вставить перед курсором / выше текущей строки
dd удалить строку и поместить её в регистр Vim

Поиск

Команда Описание
/text искать text вперёд
?text искать text назад
n перейти к следующему совпадению
N перейти к предыдущему совпадению
* искать слово под курсором вперёд
# искать слово под курсором назад

Поиск и замена

Команда Описание
:s/old/new/ заменить первое совпадение в текущей строке
:s/old/new/g заменить все совпадения в текущей строке
:%s/old/new/g заменить все совпадения во всём файле
:%s/old/new/gc заменить во всём файле с подтверждением

Пример:

:%s/ngnix/nginx/g

заменит все ngnix на nginx.


Сохранение и выход

Команда Описание
:w сохранить файл
:q выйти
:wq сохранить и выйти
:x сохранить изменения и выйти
ZZ сохранить изменения и выйти
:q! выйти без сохранения
:w filename сохранить содержимое в указанный файл

Выделение

Команда Описание
v начать посимвольное выделение
V начать построчное выделение
Ctrl+V начать блочное выделение
y скопировать выделенное
d удалить выделенное
> увеличить отступ
< уменьшить отступ

Полезные комбинации

Команда Описание
ciw удалить содержимое текущего слова и начать ввод
diw удалить текущее слово
yiw скопировать текущее слово
ci" изменить текст внутри "..."
di" удалить текст внутри "..."
ci( изменить текст внутри ( ... )
ci{ изменить текст внутри { ... }
== автоматически поправить отступ текущей строки
gg=G автоматически поправить отступы всего файла