Команды в Vim
Vim, в отличии от многих других текстовых редакторов, имеет крайне не простые методы управления. Все действия в редакторе зависят от команд, которые подаются пользователем с клавиатуры.
Список команд довольно большой, и чтобы их запомнить, придется проделать серьёзную работу, которая в дальнейшем будет достойно вознаграждена. Овладев Vim на хорошем уровне, вам уже не захочется возвращаться к прежним редакторам.
Если вы забыли, что делает определенная команда, то можете воспользоваться встроенной справкой в Vim. Для вызова справки наберите :help [имя команды]
, чтобы выйти из справки введите :q
.
К началу большинства команд можно добавить число, которое означает количество повторений команды. Например:
4h
- сдвиг курсора на 4 символа влево
3a
- повторить ввод текста 3 раза
5X
- удалить 5 символов слева от курсора
Перемещение курсора
Перемещение по словам
В командах b
, e
, B
, E
- переход зависит от положения курсора в слове.
b
- в начало текущего/предыдущего слова (beginning)
w
- в начало следующего слова
e
- в конец текущего/следующего слова (end)
B
- в начало текущего/предыдущего слова перед пробелом
W
- в начало следующего слова после пробела
E
- в конец текущего/следующего слова после пробела
Перемещение по строкам
0, Home
- к началу строки
_, ^
- к первому не пустому символу в строке
g_
- к последнему не пустому символу в строке
-
- к первому не пустому символу в строке сверху
+
- к первому не пустому символу в строке снизу
ngg
- к строке под номером n (например: 45gg
)
nG
- к строке под номером n (аналог ngg
)
Перемещение по экрану
(
- к предыдущему предложению
)
- к следующему предложению
{
- к предыдущему параграфу
}
- к следующему параграфу
Перемещение страницы
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
и т.п.)
p
- вставить после курсора (paste)
gp
- вставить после курсора и переместить курсор на один символ вправо
gP
- вставить до курсора и переместить курсор на один символ влево
Отмена действий
u
- отменить действие (undo)
U
- отменить все изменения в строке
Ctrl+R
- вернуть отменённое действие
.
- повторить последнее изменение