Горячие клавиши vim
Перемещение по тексту:
h |
Влево |
l |
Вправо |
j |
Вниз |
k |
Вверх |
w |
Вперед на первую букву слова |
e |
Вперед на последнюю букву слова |
b |
Назад на первую букву слова |
ge |
Назад на последнюю букву слова |
W |
То, же, что и w, но словом считается то, что отделено пустыми символами |
E |
То, же, что и e, но словом считается то, что отделено пустыми символами |
B |
То, же, что и b, но словом считается то, что отделено пустыми символами |
gE |
То, же, что и ge, но словом считается то, что отделено пустыми символами |
^ |
На первый непустой символ строки |
$, End |
На конец строки |
0 (ноль), Home |
На начало строки |
( |
На первую точку слева от курсора (если она есть, в противном случае на начало абзаца) |
) |
На первую точку справа от курсора (если она есть, в противном случае на конец абзаца) |
{ |
На абзац назад до пустой строки |
} |
На абзац вперед до пустой строки |
gj |
На одну экранную строку вниз. Экранная строка — это целая строка
длиной меньше ширины экрана, либо часть длинной строки, разделенной на
экране на несколько |
gk |
На одну экранную строку вверх. |
f# |
Поиск вперед в строке символа # и установка курсора на него |
F# |
Поиск назад в строке символа # и установка курсора на него |
t# |
Поиск вперед в строке символа # и установка курсора после него |
T# |
Поиск назад в строке символа # и установка курсора после него |
; |
Повтор поиска вперед символа, найденного при помощи f/t/F/T |
, |
Повтор поиска назад символа, найденного при помощи f/t/F/T |
% |
Перемещение курсора на скобку, парную той, на которой находится
курсор. Парные символы можно задать при помощи команды :set matchpairs |
:# |
Перемещение курсора на строку # |
#G |
Перемещение курсора на строку #, аналогично :# |
gg |
Перемещение курсора в начало |
G |
Перемещение курсора в конец |
#% |
Перемещение курсора на # процентов от начала |
H |
Перемещение курсора на начало видимой части текста |
M |
Перемещение курсора на середину видимой части текста |
L |
Перемещение курсора на конец видимой части текста |
Control+u |
На полэкрана вверх |
Control+d |
На полэкрана вниз |
Control+y |
На одну строку вверх. Курсор при этом не перемещается |
Control+e |
На одну строку вниз. Курсор при этом не перемещается |
Control+b |
На один экран минус 2 строки вверх |
Control+f |
На одну экран минус 2 строки вниз |
zt |
Прокрутка текста так, чтобы курсор оказался вверху экрана |
zz |
Прокрутка текста так, чтобы курсор оказался в середине экрана |
zb |
Прокрутка текста так, чтобы курсор оказался внизу экрана |
В обычном режиме:
<< |
Сдвинуть строку влево (табуляция) |
>> |
Сдвинуть строку вправо (табуляция) |
Режим выделения:
v |
Войти в режим выделения символов |
V |
Войти в режим выделения строк |
Control+Shift+v |
Войти в режим выделения прямоугольного блока текста |
gv |
Выделяет текст, который был выделен предыдущей командой выделения |
o |
Перемещение курсора в области блочного выделения для изменения размера влево |
O |
Перемещение курсора в области блочного выделения для изменения размера вправо |
I |
Включить вставку символов в блочном выделении. После нажатия I
набираются символы, а по окончании нажимаете Escape. Все набранные
символы будут вставлены в каждую строку |
с |
Аналогично I, но перед вставкой символов удаляет всё, что было выделено блоком |
с |
Аналогично I, но перед вставкой символов удаляет всё от левого края выделения до конца строки |
u |
Изменить регистр выделенных символов на нижний |
U |
Изменить регистр выделенных символов на верхний |
~ |
Изменить регистр выделенных символов на противоположный |
J |
Объединить все строки, находящиеся в области выделения |
r |
Заменить все символы на введенный после r, например rx заменит все символы в области выделения на x |
< |
Сдвинуть выделенный блок влево (табуляция) |
> |
Сдвинуть выделенный блок вправо (табуляция) |
Работа с буфером обмена:
«*yy |
Скопировать строку в буфер обмена текущего выделения. Потом можно
вставить скопированное в любом приложении нажатием средней кнопки
(колесика) мыши |
«+yy |
Скопировать строку в буфер обмена. Потом можно вставить скопированное в любом приложении нажатием Ctrl+v |
«ayy |
Скопировать строку в регистр a (имена регистров соответствуют буквам латинского алфавита, возможны имена a-z) |
«Ayy |
Добавить строку в регистр a |
«ap |
Вставить текст из регистра a |
Метки:
mx |
Создать метку с именем x |
`x |
Переместить курсор на метку x |
‘x |
Переместить курсор на строку с меткой x |
:marks |
Просмотреть все существующие в данный момент метки |
Ctrl+Shift+o |
Перемещение по меткам назад |
Ctrl+Shift+i |
Перемещение по меткам вперед |
` ` |
Переместить курсор на предыдущую метку |
‘ ‘ |
Переместить курсор на предыдущую метку |
Поиск:
/ |
Войти в режим ввода выражения для поиска. В vim можно использовать
при поиске регулярные выражения, при этом символы «.», «*», «[«, «]»,
«^», «%», «/», «\», «?», «~», «$» являются специальными и их обязательно
надо экранировать обратным слэшем («\») |
? |
То же, что и /, но поиск будет производиться в обратном порядке |
n |
Повторить поиск вперед |
N |
Повторить поиск назад |
* |
Поиск слова, на котором стоит курсор, вперед, со строгим соответствием |
# |
Поиск слова, на котором стоит курсор, назад, со строгим соответствием |
g* |
Поиск слова, на котором стоит курсор, вперед, с нестрогим
соответствием, то есть, если курсор на слове win, то будет найдено также
слово winter |
g# |
Поиск слова, на котором стоит курсор, назад, с нестрогим соответствием |
/выражение\c |
Поиск слова без учета регистра, независимо от настроек vim.
Переключать учет регистра можно командами «:set ignorecase» и «:set
noignorecase» |
/выражение\C |
Поиск слова с учетом регистра, независимо от настроек vim |
\< |
Обозначение начала слова при поиске. /\ |
\> |
Обозначение конца слова при поиске. /\ — найти только win, но не winter |
/выражение/b+1 |
Найти выражение и установить курсор на символ +1 от начального, то есть на второй |
/выражение/e-3 |
Найти выражение и установить курсор на символ -3 от конечного |
?выражение?b+1 |
То же, что и /выражение/b+1, но с поиском в обратную строну |
?выражение?e-3 |
То же, что и /выражение/e-3, но с поиском в обратную строну |
стрелка вверх |
При вводе строки для поиска просмотр истории поиска выражений, начинающихся с того, что уже набрано |
Автозамена:
При автозамене используется следующая конструкция:
:[область-действия]s/[что-искать]/[на-что-менять]/[модификаторы]
Область действия:
% |
Весь текст |
1 |
Первая строка |
. |
Текущая строка |
$ |
Последняя строка |
X,Y |
От строки X до строки Y |
.,$ |
Вариант предыдущего выражения, от первой до последней строки. Аналогично % |
Модификаторы:
g |
Все вхождения в строке |
c |
С запросом подтверждения |
i |
Без учета регистра |
e |
Не выводит ошибку, если искомая строка не найдена |
В строках для поиска и замены можно использовать регулярные
выражения, если вы знакомы с программой sed, то проблем у вас не
возникнет.
Это не все сочетания клавиш, которые доступны при работе в vim, но
даже их уже достаточно для того, чтобы повысить эффективность работы в
этом текстовом редакторе.