VimСправка по горячим клавишам
Vim — это текстовый редактор с широкими возможностями настройки, созданный для эффективного создания и изменения любого типа текста. Он включен как «vi» в большинство систем UNIX и в Apple OS X.
Визуальная справка по 228 клавишам быстрого доступа в Vim
Глобальный
:ter[minal] | открыть окно терминала |
Ctrl b | переместить экран на одну страницу вверх (курсор до последней строки) |
H | перейти в верхнюю часть экрана |
gk | переместить курсор вверх (многострочный текст) |
Ctrl u | переместить курсор и экран вверх на 1/2 страницы |
Ctrl e | переместить экран вниз на одну строку (не перемещая курсор) |
b | перейти назад к началу слова |
:sav[eas] file | сохранить файл как |
O | добавить (открыть) новую строку выше текущей строки |
$ | перейти в конец строки |
gE | перейти назад к концу слова (слова могут содержать знаки препинания) |
gd | перейти к местной декларации |
fx | перейти к следующему вхождению символа x |
Ctrl j | добавить разрыв строки в позиции курсора в режиме вставки |
5gg 5G | перейти к строке 5 |
K | открыть справочную страницу для слова под курсором |
, | повторить предыдущее движение f, t, F или T назад |
gg | перейти к первой строке документа |
Ctrl p | вставить (автозаполнение) предыдущее совпадение перед курсором в режиме вставки |
Ctrl d | переместить курсор и экран вниз на 1/2 страницы |
W | перейти вперед к началу слова (слова могут содержать знаки препинания) |
j | переместить курсор вниз |
{ | перейти к предыдущему абзацу (или функции/блоку при редактировании кода) |
a | вставить (добавить) после курсора |
ea | вставить (добавить) в конец слова |
k | переместить курсор вверх |
l | переместить курсор вправо |
Esc Ctrl c | выйти из режима вставки |
tx | перейти к следующему появлению символа x |
Ctrl w | удалить слово перед курсором в режиме вставки |
; | повторить предыдущее движение f, t, F или T |
G | перейти к последней строке документа |
zb | расположить курсор внизу экрана |
Fx | перейти к предыдущему вхождению символа x |
Ctrl f | переместить экран вниз на одну страницу (курсор на первую строку) |
A | вставить (добавить) в конец строки |
ge | перейти назад к концу слова |
zt | расположить курсор вверху экрана |
w | перейти вперед к началу слова |
e | перейти вперед к концу слова |
gD | перейти к глобальной декларации |
Ctrl h | удалить символ перед курсором в режиме вставки |
g_ | перейти к последнему непустому символу строки |
Ctrl rx | вставить содержимое регистра x |
Ctrl n | вставить (автозаполнение) следующее совпадение перед курсором в режиме вставки |
^ | перейти к первому непустому символу строки |
L | перейти в нижнюю часть экрана |
M | перейти в середину экрана |
:clo[se] | закрыть текущую панель |
:h[elp] keyword | открыть справку по ключевому слову |
0 | перейти к началу строки |
% | переместите курсор на соответствующий символ (поддерживаемые пары по умолчанию: «()», «{}», «[]» |
o | добавить (открыть) новую строку ниже текущей строки |
zz | центральный курсор на экране |
B | перейти назад к началу слова (слова могут содержать знаки препинания) |
i | вставить перед курсором |
Tx | перейти к месту после предыдущего появления символа x |
} | перейти к следующему абзацу (или функции/блоку при редактировании кода) |
Ctrl t | отступ (перемещение вправо) строки на один сдвиг в режиме вставки |
Ctrl d | убрать отступ (переместить влево) на одну ширину строки в режиме вставки |
h | переместить курсор влево |
gj | переместить курсор вниз (многострочный текст) |
E | перейти вперед к концу слова (слова могут содержать знаки препинания) |
I | вставить в начало строки |
Ctrl ox | Временно войдите в обычный режим, чтобы выполнить одну команду x в обычном режиме. |
Ctrl y | переместить экран на одну строку вверх (не перемещая курсор) |
Макросы
>ib | отступ внутреннего блока с помощью () |
@a | запустить макрос а |
:tabdo | запустите команду на всех вкладках (например, :tabdo q |
:q! ZQ | выйти и удалить несохраненные изменения |
:w | записать (сохранить) файл, но не выходить |
p | поместить (вставить) буфер обмена после курсора |
yaw | вытащить (скопировать) слово под курсором и пробел после или перед ним |
>% | сделать отступ для блока с помощью () или {} (курсор в фигурной скобке) |
]p | вставить и отрегулировать отступ к текущей строке |
yw | перетащить (скопировать) символы слова из позиции курсора в начало следующего слова |
yy | выдернуть (скопировать) строку |
y$ Y | скопировать (копировать) в конец строки |
:cope[n] | открыть окно со списком совпадений |
:q | выйти (не удается, если есть несохраненные изменения) |
Ctrl wT | переместить текущее разделенное окно на отдельную вкладку |
:g!/{pattern}/d | удалить все строки, не содержащие шаблон |
:noh[lsearch] | убрать выделение совпадений в поиске |
>> | отступ (перемещение вправо) строки на один сдвиг, ширина |
=% | изменить отступ блока с помощью () или {} (курсор в фигурной скобке) |
qa | записать макрос а |
x | удалить (вырезать) символ |
:ccl[ose] | закройте окно быстрого исправления |
dw | удалить (вырезать) символы слова от позиции курсора до начала следующего слова |
N | повторить поиск в противоположном направлении |
:%s/old/new/gc | :%s/old/new/gc — заменить все старое на новое во всем файле с подтверждениями |
:cp[revious] | перейти к предыдущему совпадению |
:vim[grep] /pattern/ {`{file}`} | :vim[grep] /pattern/ {`{file}`} — поиск шаблона в нескольких файлах |
/pattern | поиск шаблона |
>at | отступ блока с помощью тегов <> |
gP | поместите (вставьте) перед курсором и оставьте курсор после нового текста |
P | поместить (вставить) перед курсором |
d$ D | удалить (вырезать) до конца строки |
:tabo[nly] | закрыть все вкладки, кроме текущей |
daw | удалить (вырезать) слово под курсором и пробел после или перед ним |
diw | удалить (вырезать) слово под курсором |
q | остановить запись макроса |
:%s/old/new/g | :%s/old/new/g — заменить все старое на новое во всем файле |
:tabnew :tabnew {page.words.file} | :tabnew или :tabnew {page.words.file} — открыть файл в новой вкладке |
3== | изменить отступ на 3 строки |
<< | убрать отступ (переместить влево) на одну ширину строки |
:tabc[lose] | закрыть текущую вкладку и все ее окна |
2dd | удалить (вырезать) 2 строки |
:cn[ext] | перейти к следующему матчу |
dd | удалить (вырезать) строку |
gp | поместите (вставьте) буфер обмена после курсора и оставьте курсор после нового текста |
gt :tabn[ext] | перейти на следующую вкладку |
yiw | вытащить (скопировать) слово под курсором |
gg=G | изменить отступ всего буфера |
gT :tabp[revious] | перейти на предыдущую вкладку |
=iB | изменить отступ внутреннего блока с помощью {} |
\vpattern | «очень волшебный» шаблон: небуквенно-цифровые символы интерпретируются как специальные символы регулярного выражения (экранирование не требуется) |
:tabm[ove] # | переместить текущую вкладку на #-ю позицию (индексируется с 0) |
:g/{pattern}/d | удалить все строки, содержащие шаблон |
?pattern | поиск по шаблону назад |
#gt | перейти на вкладку номер # |
:w !sudo tee % | записать текущий файл с помощью sudo |
<% | Устраните отступ блока с помощью () или {} (курсор в фигурной скобке) |
:wq :x ZZ | написать (сохранить) и выйти |
:wqa | написать (сохранить) и выйти на всех вкладках |
n | повторить поиск в том же направлении |
2yy | выдернуть (скопировать) 2 строки |
:3,5d | удалить строки начиная с 3 по 5 |
@@ | перезапустить последний макрос |
Редактирование
Ctrl v | запустить режим визуальной блокировки |
"+p | вставить из реестра системного буфера обмена |
< | сдвинуть текст влево |
Ctrl r | переделывать |
y`a | переместить текст в положение отметки A |
U | восстановить (отменить) последнюю измененную строку |
o | перейти на другой конец отмеченной области |
`0 | перейти к позиции, где ранее был закрыт Vim |
Ctrl ] | перейти к тегу под курсором |
~ | переключатель корпуса |
ma | установить текущую позицию для отметки A |
:changes | список изменений |
"+y | скопировать в регистр системного буфера обмена |
. | повторить последнюю команду |
aB | блок с {} |
J | соединить строку ниже с текущей с одним пробелом между ними |
> | сдвинуть текст вправо |
cw ce | изменить (заменить) до конца слова |
s | удалить символ и заменить текст (так же, как cl) |
gu | перейти на строчные буквы до движения |
:reg[isters] | показать содержимое регистров |
:marks | список оценок |
"xp | вставить содержимое регистра x |
Ctrl o | перейти на старую позицию в списке переходов |
u | отменить |
g; | перейти на старую позицию в списке изменений |
gJ | соединить строку ниже с текущей без пробела между ними |
gU | перейти на верхний регистр до движения |
`. | перейти к позиции последнего изменения в этом файле |
at | блок с тегами <> |
c$ C | изменить (заменить) до конца строки |
S | удалить строку и заменить текст (так же, как cc) |
`` | перейти на позицию перед последним прыжком |
V | запустить линейный визуальный режим |
d | удалить отмеченный текст |
ciw | изменить (заменить) целое слово |
it | внутренний блок с тегами <> |
aw | отметить слово |
g~ | переключить дело в движение |
ib | внутренний блок с () |
u | изменить выделенный текст на нижний регистр |
gwip | перекомпоновать абзац |
g, | перейти на новую позицию в списке изменений |
`a | перейти к позиции отметки А |
U | изменить выделенный текст на верхний регистр |
xp | транспонировать две буквы (удалить и вставить) |
R ESC | заменить более одного символа, пока не будет нажата ESC. |
y | вытащить (копировать) выделенный текст |
:ju[mps] | список прыжков |
`" | перейти к месту последнего редактирования этого файла |
O | переехать в другой угол квартала |
"xy | скопировать в регистр x |
v | запустите визуальный режим, отметьте линии, затем выполните команду (например, y-yank) |
ab | блок с () |
iB | внутренний блок с {} |
cc | изменить (заменить) всю строку |
r | заменить один символ. |
Ctrl i | перейти на новую позицию в списке переходов |
Esc Ctrl c | выйти из визуального режима |
Разница
:diffo[ff] | отключить режим сравнения для текущего окна |
zf | вручную определить сгиб до движения |
:diffthis | сделать текущее окно частью разницы |
[c | перейти к началу предыдущего изменения |
do :diffg[et] | получить (получить) разницу (из другого буфера) |
zm | сложить еще (закрыть) все складки на один уровень |
za | переключить складку под курсором |
zc | закрыть складку под курсором |
zi | переключить функцию складывания |
:dif[fupdate] | обновить различия |
dp :diffpu[t] | поместить разницу (в другой буфер) |
zr | уменьшить (открыть) все складки на один уровень |
]c | перейти к началу следующего изменения |
zo | открыть складку под курсором |
zd | удалить складку под курсором |
Работа с несколькими файлами
:b[uffer]# | перейти в буфер по индексу # |
:b[uffer] file | перейти к буферу по файлу |
:bp[revious] | :bp[revious] — перейти к предыдущему буферу |
Ctrl wl | переместить курсор в правое окно (вертикальное разделение) |
:vert[ical] ba[ll] | редактировать все буферы как вертикальные окна |
Ctrl ww | переключать окна |
Ctrl wq | выйти из окна |
Ctrl wk | переместить курсор в окно выше (горизонтальное разделение) |
Ctrl wv | разделить окно по вертикали |
:ls :buffers | список всех открытых буферов |
:bn[ext] | :bn[ext] — перейти к следующему буферу |
Ctrl wL | сделать текущее окно на всю высоту в крайнем правом углу (крайнее правое вертикальное окно) |
:sp[lit] file | открыть файл в новом буфере и разделить окно |
Ctrl wH | сделать текущее окно на всю высоту в крайнем левом углу (крайнее левое вертикальное окно) |
Ctrl wJ | сделать текущее окно на полную ширину в самом низу (самое нижнее горизонтальное окно) |
Ctrl ws | разделенное окно |
:vs[plit] file | открыть файл в новом буфере и вертикально разделенном окне |
Ctrl w= | сделать все окна одинаковой высоты и ширины |
:e[dit] file | редактировать файл в новом буфере |
Ctrl wj | переместите курсор в окно ниже (горизонтальное разделение) |
Ctrl wh | переместить курсор в левое окно (вертикальное разделение) |
Ctrl wx | поменять текущее окно на следующее |
:tab ba[ll] | редактировать все буферы как вкладки |
Ctrl wK | сделать текущее окно на всю ширину в самом верху (самое верхнее горизонтальное окно) |
:bd[elete] | удалить буфер (закрыть файл) |