VimСправка по горячим клавишам

Vim — это текстовый редактор с широкими возможностями настройки, созданный для эффективного создания и изменения любого типа текста. Он включен как «vi» в большинство систем UNIX и в Apple OS X.

Визуальная справка по 228 клавишам быстрого доступа в Vim

Глобальный

:ter[minal]открыть окно терминала
Ctrlbпереместить экран на одну страницу вверх (курсор до последней строки)
Hперейти в верхнюю часть экрана
gkпереместить курсор вверх (многострочный текст)
Ctrluпереместить курсор и экран вверх на 1/2 страницы
Ctrleпереместить экран вниз на одну строку (не перемещая курсор)
bперейти назад к началу слова
:sav[eas] fileсохранить файл как
Oдобавить (открыть) новую строку выше текущей строки
$перейти в конец строки
gEперейти назад к концу слова (слова могут содержать знаки препинания)
gdперейти к местной декларации
fxперейти к следующему вхождению символа x
Ctrljдобавить разрыв строки в позиции курсора в режиме вставки
5gg5Gперейти к строке 5
Kоткрыть справочную страницу для слова под курсором
,повторить предыдущее движение f, t, F или T назад
ggперейти к первой строке документа
Ctrlpвставить (автозаполнение) предыдущее совпадение перед курсором в режиме вставки
Ctrldпереместить курсор и экран вниз на 1/2 страницы
Wперейти вперед к началу слова (слова могут содержать знаки препинания)
jпереместить курсор вниз
{перейти к предыдущему абзацу (или функции/блоку при редактировании кода)
aвставить (добавить) после курсора
eaвставить (добавить) в конец слова
kпереместить курсор вверх
lпереместить курсор вправо
EscCtrlcвыйти из режима вставки
txперейти к следующему появлению символа x
Ctrlwудалить слово перед курсором в режиме вставки
;повторить предыдущее движение f, t, F или T
Gперейти к последней строке документа
zbрасположить курсор внизу экрана
Fxперейти к предыдущему вхождению символа x
Ctrlfпереместить экран вниз на одну страницу (курсор на первую строку)
Aвставить (добавить) в конец строки
geперейти назад к концу слова
ztрасположить курсор вверху экрана
wперейти вперед к началу слова
eперейти вперед к концу слова
gDперейти к глобальной декларации
Ctrlhудалить символ перед курсором в режиме вставки
g_перейти к последнему непустому символу строки
Ctrlrxвставить содержимое регистра x
Ctrlnвставить (автозаполнение) следующее совпадение перед курсором в режиме вставки
^перейти к первому непустому символу строки
Lперейти в нижнюю часть экрана
Mперейти в середину экрана
:clo[se]закрыть текущую панель
:h[elp] keywordоткрыть справку по ключевому слову
0перейти к началу строки
%переместите курсор на соответствующий символ (поддерживаемые пары по умолчанию: «()», «{}», «[]»
oдобавить (открыть) новую строку ниже текущей строки
zzцентральный курсор на экране
Bперейти назад к началу слова (слова могут содержать знаки препинания)
iвставить перед курсором
Txперейти к месту после предыдущего появления символа x
}перейти к следующему абзацу (или функции/блоку при редактировании кода)
Ctrltотступ (перемещение вправо) строки на один сдвиг в режиме вставки
Ctrldубрать отступ (переместить влево) на одну ширину строки в режиме вставки
hпереместить курсор влево
gjпереместить курсор вниз (многострочный текст)
Eперейти вперед к концу слова (слова могут содержать знаки препинания)
Iвставить в начало строки
CtrloxВременно войдите в обычный режим, чтобы выполнить одну команду x в обычном режиме.
Ctrlyпереместить экран на одну строку вверх (не перемещая курсор)

Макросы

>ibотступ внутреннего блока с помощью ()
@aзапустить макрос а
:tabdoзапустите команду на всех вкладках (например, :tabdo q
:q!ZQвыйти и удалить несохраненные изменения
:wзаписать (сохранить) файл, но не выходить
pпоместить (вставить) буфер обмена после курсора
yawвытащить (скопировать) слово под курсором и пробел после или перед ним
>%сделать отступ для блока с помощью () или {} (курсор в фигурной скобке)
]pвставить и отрегулировать отступ к текущей строке
ywперетащить (скопировать) символы слова из позиции курсора в начало следующего слова
yyвыдернуть (скопировать) строку
y$Yскопировать (копировать) в конец строки
:cope[n]открыть окно со списком совпадений
:qвыйти (не удается, если есть несохраненные изменения)
CtrlwTпереместить текущее разделенное окно на отдельную вкладку
: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:xZZнаписать (сохранить) и выйти
:wqaнаписать (сохранить) и выйти на всех вкладках
nповторить поиск в том же направлении
2yyвыдернуть (скопировать) 2 строки
:3,5dудалить строки начиная с 3 по 5
@@перезапустить последний макрос

Редактирование

Ctrlvзапустить режим визуальной блокировки
"+pвставить из реестра системного буфера обмена
<сдвинуть текст влево
Ctrlrпеределывать
y`aпереместить текст в положение отметки A
Uвосстановить (отменить) последнюю измененную строку
oперейти на другой конец отмеченной области
`0перейти к позиции, где ранее был закрыт Vim
Ctrl]перейти к тегу под курсором
~переключатель корпуса
maустановить текущую позицию для отметки A
:changesсписок изменений
"+yскопировать в регистр системного буфера обмена
.повторить последнюю команду
aBблок с {}
Jсоединить строку ниже с текущей с одним пробелом между ними
>сдвинуть текст вправо
cwceизменить (заменить) до конца слова
sудалить символ и заменить текст (так же, как cl)
guперейти на строчные буквы до движения
:reg[isters]показать содержимое регистров
:marksсписок оценок
"xpвставить содержимое регистра x
Ctrloперейти на старую позицию в списке переходов
uотменить
g;перейти на старую позицию в списке изменений
gJсоединить строку ниже с текущей без пробела между ними
gUперейти на верхний регистр до движения
`.перейти к позиции последнего изменения в этом файле
atблок с тегами &lt;&gt;
c$Cизменить (заменить) до конца строки
Sудалить строку и заменить текст (так же, как cc)
``перейти на позицию перед последним прыжком
Vзапустить линейный визуальный режим
dудалить отмеченный текст
ciwизменить (заменить) целое слово
itвнутренний блок с тегами &lt;&gt;
awотметить слово
g~переключить дело в движение
ibвнутренний блок с ()
uизменить выделенный текст на нижний регистр
gwipперекомпоновать абзац
g,перейти на новую позицию в списке изменений
`aперейти к позиции отметки А
Uизменить выделенный текст на верхний регистр
xpтранспонировать две буквы (удалить и вставить)
RESCзаменить более одного символа, пока не будет нажата ESC.
yвытащить (копировать) выделенный текст
:ju[mps]список прыжков
`"перейти к месту последнего редактирования этого файла
Oпереехать в другой угол квартала
"xyскопировать в регистр x
vзапустите визуальный режим, отметьте линии, затем выполните команду (например, y-yank)
abблок с ()
iBвнутренний блок с {}
ccизменить (заменить) всю строку
rзаменить один символ.
Ctrliперейти на новую позицию в списке переходов
EscCtrlcвыйти из визуального режима

Разница

: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] — перейти к предыдущему буферу
Ctrlwlпереместить курсор в правое окно (вертикальное разделение)
:vert[ical] ba[ll]редактировать все буферы как вертикальные окна
Ctrlwwпереключать окна
Ctrlwqвыйти из окна
Ctrlwkпереместить курсор в окно выше (горизонтальное разделение)
Ctrlwvразделить окно по вертикали
:ls:buffersсписок всех открытых буферов
:bn[ext]:bn[ext] — перейти к следующему буферу
CtrlwLсделать текущее окно на всю высоту в крайнем правом углу (крайнее правое вертикальное окно)
:sp[lit] fileоткрыть файл в новом буфере и разделить окно
CtrlwHсделать текущее окно на всю высоту в крайнем левом углу (крайнее левое вертикальное окно)
CtrlwJсделать текущее окно на полную ширину в самом низу (самое нижнее горизонтальное окно)
Ctrlwsразделенное окно
:vs[plit] fileоткрыть файл в новом буфере и вертикально разделенном окне
Ctrlw=сделать все окна одинаковой высоты и ширины
:e[dit] fileредактировать файл в новом буфере
Ctrlwjпереместите курсор в окно ниже (горизонтальное разделение)
Ctrlwhпереместить курсор в левое окно (вертикальное разделение)
Ctrlwxпоменять текущее окно на следующее
:tab ba[ll]редактировать все буферы как вкладки
CtrlwKсделать текущее окно на всю ширину в самом верху (самое верхнее горизонтальное окно)
:bd[elete]удалить буфер (закрыть файл)

ЧаВо