`

Справочник основных команд редактора Vim

Команды в Vim

Vim, в отличии от многих других текстовых редакторов, имеет крайне не простые методы управления. Все действия в редакторе зависят от команд, которые подаются пользователем с клавиатуры.

Список команд довольно большой, и чтобы их запомнить, придется проделать серьёзную работу, которая в дальнейшем будет достойно вознаграждена. Овладев Vim на хорошем уровне, вам уже не захочется возвращаться к прежним редакторам.

Если вы забыли, что делает определенная команда, то можете воспользоваться встроенной справкой в Vim. Для вызова справки наберите :help [имя команды], чтобы выйти из справки введите :q.

К началу большинства команд можно добавить число, которое означает количество повторений команды. Например:

4h
- сдвиг курсора на 4 символа влево
3a
- повторить ввод текста 3 раза
5X
- удалить 5 символов слева от курсора

Перемещение курсора

h
- влево
j
- вниз
k
- вверх
l
- влево

Перемещение по словам

В командах b, e, B, E - переход зависит от положения курсора в слове.

b
- в начало текущего/предыдущего слова (beginning)
w
- в начало следующего слова
e
- в конец текущего/следующего слова (end)
B
- в начало текущего/предыдущего слова перед пробелом 
W
- в начало следующего слова после пробела
E
- в конец текущего/следующего слова после пробела

Перемещение по строкам

0, Home
- к началу строки
$, End
- к концу строки
_, ^
- к первому не пустому символу в строке
g_
- к последнему не пустому символу в строке
-
- к первому не пустому символу в строке сверху
+
- к первому не пустому символу в строке снизу
gg
- к первой строке
G
- к последней строке
ngg
- к строке под номером n (например: 45gg)
nG
- к строке под номером n (аналог ngg)

Перемещение по экрану

H
- в начало экрана
M
- в середину экрана
L
- в конец экрана
(
- к предыдущему предложению
)
- к следующему предложению
{
- к предыдущему параграфу
}
- к следующему параграфу

Перемещение страницы

zt
- передвинуть строку вверх экрана 
zz
- передвинуть строку в середину экрана
z.
- передвинуть строку в середину экрана, курсор в начало строки
zb
- передвинуть строку в конец экрана
Ctrl+D
- передвинуть пол-страницы вниз
Ctrl+U
- передвинуть пол-страницы вверх
Ctrl+B
- передвинуть страницу вверх (Page Up)
Ctrl+F
- передвинуть страницу вниз (Page Down)
Ctrl+O
- переместить курсор на предыдущее место
Ctrl+I
- переместить курсор на последнее место (после Ctrl+O)
Ctrl+E
- передвинуть страницу на одну строку вверх
Ctrl+Y
- передвинуть страницу на одну строку вниз

Перемещение по символам

%
- к парной скобке () {} []
fX
- к следующему символу X в строке (X - любой символ)
FX
- к предыдущему символу X в строке
tX
- к следующему символу до символа X в строке (till)
;
- повторить переход в прямом направлении 
,
- повторить переход в обратном направлении

Поиск и перемещение по совпадениям

?
- поиск текста до курсора
/
- поиск текста после курсора
gd
- перейти к первому появлению слова под курсором
n
- к следующему совпадению
N
- к предыдущему совпадению
*
- к следующему слову под курсором
#
- к предыдущему слову под курсором
g*
- к следующему слову под курсором (при этом слово станет шаблоном поиска)
g#
- к предыдущему слову под курсором (при этом слово станет шаблоном поиска)

Ввод текста (Insert mode)

a
- добавить текст после курсора
i
- добавить текст до курсора 
A
- добавить текст в конце строки
I
- добавить текст в начале строки
o
- добавить строку сверху курсора
O
- добавить строку снизу курсора
Esc
- выход из режима редактирования

Удаление (вырезка) текста

Важно отметить, что текст в Vim не удаляется как в обычных редакторах, а всегда вырезается в буфер обмена, поэтому всегда, удаленный (вырезанный) текст, можно вставить в любом месте документа.

x, DEL
- удалить (вырезать) символ под курсором
X
- удалить (вырезать) символ до курсора (аналог backspace)
d[направление]
- удалить (вырезать) символы по направлению (h, j, k, l, $, 0 и т.п.)
dd
- удалить (вырезать) строку
D
- удалить (вырезать) символы от курсора до конца строки

Изменение и замена текста

J
- объединить строку с нижней (join)
r[символ]
- заменить символ под курсором (replace)
R
- начать ввод с заменой текста (аналог кнопки insert)
s
- заменить символ и начать ввод (substitute)
S
- заменить строку и начать ввод
c[направление]
- изменить символ по направлению (h, l, e, b и т.п.)
C
- изменить строку от курсора до конца (change)
~
- сменить регистр символа под курсором
gu
- преобразовать в нижний регистр (для изменения - сместите курсор)
gU
- преобразовать в верхний регистр (для изменения -сместите курсор)

Выделение текста (Visual mode)

v
- посимвольное выделение текста (visual)
V
- построчное выделение текста
Esc
- выход из режима выделения

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

y[направление]
- копировать символ под курсором по направлению (h, j, k, l, $, 0 и т.п.)
yy
- копировать строку
p
- вставить после курсора (paste)
P
- вставить до курсора
gp
- вставить после курсора и переместить курсор на один символ вправо
gP
- вставить до курсора и переместить курсор на один символ влево

Отмена действий

u
- отменить действие (undo)
U
- отменить все изменения в строке
Ctrl+R
- вернуть отменённое действие
.
- повторить последнее изменение