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 |
автоматически поправить отступы всего файла |