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