Globalne
- :h[elp] słowo kluczowe - otwórz pomoc dla słowa kluczowego
 - :sav[eas] plik - zapisz plik jako
 - :clo[se] - zamknij okienko nawigacji
 - :ter[minal] - otwórz okno terminala
 - K - otwórz stronę pomocy dla słowa pod kursorem
 
Poruszanie kursorem
- h - przesuń kursor w lewo
 - j - przesuń kursor w dół
 - k - przesuń kursor w górę
 - l - przesuń kursor w prawo
 - gj - przesuń kursor w dół (w tekście wielowierszowym)
 - gk - przesuń kursor w górę (w tekście wielowierszowym)
 - H - skocz do góry ekranu
 - M - skocz do połowy ekranu
 - L - skocz do dołu ekranu
 - w - skocz na początek następnego wyrazu
 - W - skocz na początek następnego wyrazu (słowa mogą zawierać interpunkcję)
 - e - skocz na koniec bieżącego wyrazu
 - E - skocz na koniec bieżącego wyrazu (słowa mogą zawierać interpunkcję)
 - b - skocz na początek bieżącego wyrazu
 - B - skocz na początek bieżącego wyrazu (słowa mogą zawierać interpunkcję)
 - ge - skocz wstecz do końca słowa
 - gE - skocz wstecz do końca słowa (słowa mogą zawierać interpunkcję)
 - 
            % - przesuń do pasującego znaku (standardowo wspierane pary: '()', '{}', '[]' - użyj 
:h matchpairsw Vimie po więcej informacji) - 0 - skocz na początek linii
 - ^ - przesuń kursor na pierwszy niepusty znak
 - $ - skocz na koniec wiersza
 - g_ - skocz do ostatniego niepustego znaku na końcu wiersza
 - gg - skocz do pierwszego wiersza w pliku
 - G - skocz do ostatniego wiersza w pliku
 - 5gg or 5G - skocz do linii 5
 - gd - skocz do deklaracji lokalnej
 - gD - skocz do deklaracji globalnej
 - fx - przesuń kursor na pierwszy znaleziony znak 'x'
 - tx - przesuń kursor przed pierwszy znaleziony znak 'x'
 - Fx - skocz do poprzedniego wystąpienia znaku x
 - Tx - skocz do lokalizacji po ostatnim wystąpieniu znaku x
 - ; - powtórz poprzednie ruchy f, t, F lub T
 - , - powtórz poprzednie ruchy f, t, F lub T wstecz
 - } - skocz do następnego paragrafu (albo funkcji/bloku kodu w trakcie edycji kodu)
 - { - skocz do poprzedniego paragrafu (albo funkcji/bloku kodu w trakcie edycji kodu)
 - zz - wyśrodkuj kursor na ekranie
 - zt - ustaw kursor na górze ekranu
 - zb - ustaw kursor na dole ekranu
 - Ctrl + e - przesuń ekran o jedną linię w dół (bez przesuwania kursowa)
 - Ctrl + y - przesuń ekran o jedną linię w górę (bez przesuwania kursowa)
 - Ctrl + b - przesuń ekran o całą jego wysokość w górę
 - Ctrl + f - przesuń ekran o całą jego wysokość w dół
 - Ctrl + d - przesuń ekran o połowę tekstu w dół
 - Ctrl + u - przesuń ekran o połowę tekstu w górę
 
Tryb wprowadzania tekstu: wstawianie/dodawanie tekstu
- i - wstaw przed kursorem
 - I - wstaw na początku wiersza
 - a - wstaw za kursorem
 - A - przesuń kursor na koniec wiersza i wprowadź tekst od tej pozycji
 - o - utwórz nowy wiersz poniżej bieżącego i wprowadź tekst
 - O - utwórz nowy wiersz powyżej bieżącego i wprowadź tekst
 - ea - wstaw na końcu wyrazu
 - Ctrl + h - usuń znak przed kursorem w trybie edycji
 - Ctrl + w - usuń słowo przed kursorem w trybie edycji
 - Ctrl + j - rozpocznij nowy wiersz w trybie edycji
 - Ctrl + t - zwiększ wcięcie (przesuń w prawo) linię o jedną szerokość wcięcia w trybie edycji
 - Ctrl + d - zmniejsz wcięcie (przesuń w lewo) linię o jedną szerokość wcięcia w trybie edycji
 - Ctrl + n - wstaw następne dopasowanie przed kursorem w trybie edycji
 - Ctrl + p - wstaw poprzednie dopasowanie przed kursorem w trybie edycji
 - Ctrl + rx - wstaw zawartość rejestru x
 - Ctrl + ox - tymczasowo przejdź do trybu normalnego, żeby wykonać komendę x.
 - Esc or Ctrl + c - wyjdź z trybu wstawiania
 
Edycja
- r - zamień pojedynczy znak pod kursorem
 - R - zamień więcej niż jeden znak (dopóki nie zostanie naciśniety ESC).
 - J - połącz wiersze: dodaj wiersz poniżej do bieżącego
 - gJ - połącz wiersze: dodaj wiersz poniżej do bieżącego bez spacji pomiędzy nimi
 - gwip - podziel akapit na wiersze
 - g~ - zmień wielkość liter (zgodnie z ruchem)
 - gu - zmień na małe litery (zgodnie z ruchem)
 - gU - zmień na wielkie litery (zgodnie z ruchem)
 - cc - zastąp cały wiersz
 - c$ or C - zastąp na końcu wiersza
 - ciw - zastąp całe słowo
 - cw or ce - zastąp na końcu wyrazu
 - s - zastąp znak wskazany przez kursor
 - S - zastąp wiersz (takie samo znaczenie jak cc)
 - xp - zastąp dwa znaki (usuń i wklej)
 - u - cofnij
 - U - cofnij (przywróc) ostatnio zmienioną linię
 - Ctrl + r - popraw
 - . - powtórz ostatnią komendę
 
Zaznaczanie tekstu
- v - uruchom tryb wizualny, zaznacz wiersze, potem wykonaj polecenie (podobnie jak y-kopiuj zaznaczony tekst)
 - V - uruchom tryb wizualny
 - o - przesuń na koniec zaznaczonej części
 - Ctrl + v - uruchom tryb wizualny
 - O - przesuń do przeciwnego kąta bloku
 - aw - zaznacz słowo
 - ab - blok z ()
 - aB - blok z {}
 - at - blok z <>
 - ib - wewnętrzny blok z ()
 - iB - wewnętrzny blok z {}
 - it - wewnętrzny blok z <>s
 - Esc or Ctrl + c - wyjdź z trybu wizualnego
 
Komendy w trybie wizualnym
- > - przesuń tekst w prawo
 - < - przesuń tekst w lewo
 - y - kopiuj zaznaczony tekst
 - d - usuń zaznaczony tekst
 - ~ - zmień wielkość liter
 - u - zmień zaznaczony tekst na małe litery
 - U - zmień zaznaczony tekst na wielkie litery
 
Rejestry
- :reg[isters] - pokaż zawartość rejestrów
 - "xy - kopiuj do rejestru x
 - "xp - wklej zawartość rejestru x
 - "+y - skopiuj do rejestru schowka systemowego
 - "+p - wklej z rejestru schowka systemowego
 
             0 - ostatno skopiowany tekst
             " - nienazwany rejestr, ostatnio skopiowany lub usunięty tekst
             % - bieżąca nazwa pliku
             # - alternatywna nazwa pliku
             * - zawartość schowka (X11 primary)
             + - zawartość schowka (schowek X11)
             / - ostatnio wyszukiwany wzorzec
             : - ostatnio wykonana komenda z linii poleceń
             . - ostatnio wstawiony tekst
             - - ostatnio usunięty krótki (krótszy niż linia) tekst
             = - rejestr przechowujący wyrażenie
             _ - rejestr „czarna dziura” (pochłania przekazany tekst, nie zwraca niczego przy odczycie)
          
Oznaczanie
- :marks - pokaż listę wszystkich zaznaczeń
 - ma - ustaw bieżącą pozycję na oznaczenie A
 - `a - przeskocz do pozycji oznaczenia A
 - y`a - kopiuj tekst do pozycji oznaczenia A
 - `0 - idź do lokalizacji, w której Vim został zamknięty
 - `" - idź do miejsca ostatniej edycji w tym pliku
 - `. - idź do miejsca ostatniej zmiany w tym pliku
 - `` - idź do miejsca przed ostatnim skokiem
 - :ju[mps] - lista skoków
 - Ctrl + i - idź do nowszej pozycji w liście skoków
 - Ctrl + o - idź do starszej pozycji w liście skoków
 - :changes - lista zmian
 - g, - idź do nowszej pozycji w liście zmian
 - g; - idź do starszej pozycji w liście zmian
 - Ctrl + ] - skocz do znacznika pod kursorem
 
Makra
- qa - nagraj makro A
 - q - przerwij nagrywanie makra
 - @a - odtwórz makro A
 - @@ - powtórz ostatnio odtworzone makro
 
Wytnij i wklej
- yy - kopiuj wiersz
 - 2yy - kopiuj dwa wiersze
 - yw - kopiuj litery wyrazu od miejsca, gdzie znajduje się kursor, na początek następnego słowa
 - yiw - kopiuj wyraz pod kursorem
 - yaw - kopiuj wyraz pod kursorem i spacje przed lub za tym wyrazem
 - y$ or Y - kopiuj na koniec wiersza
 - p - wklej zawartość schowka za kursorem
 - P - wklej przed kursorem
 - gp - wklej zawartość schowka za kursorem i postaw kursor za wklejonym tekstem
 - gP - wklej przed kursorem i postaw kursor za wklejonym tekstem
 - dd - kasuj wiersz
 - 2dd - kasuj dwa wiersze
 - dw - kasuj litery wyrazu od miejsca, gdzie znajduje się kursor, na początek następnego słowa
 - diw - kasuj wyraz pod kursorem
 - daw - kopiuj wyraz pod kursorem i spację przed wyrazem lub za nim
 - :3,5d - usuń linie od 3 do 5
 
e.g.
            :.,$d - Od obecnej linii do końca pliku 
            :.,1d - Od obecnej linii do początku pliku 
            :10,1d - Od 10 linii do początku pliku 
          
- :g/{pattern}/d - usuń wszystkie linie zawierające dany wzorzec (pattern)
 - :g!/{pattern}/d - usuń wszystkie linie nie zawierające danego wzorca (pattern)
 - d$ or D - kasuj na końcu wiersza
 - x - usuń znak
 
Wcięcia tekstu
- >> - zwiększ wcięcie (przesuń w prawo) o jedną szerokość wcięcia
 - << - zmniejsz wcięcie (przesuń w lewo) o jedną szerokość wcięcia
 - >% - zwiększ wcięcie bloku ograniczonego () lub {} (kursor on nawiasie)
 - <% - usunięcie wcięcia ograniczonego () lub {} (kursor na nawiasie)
 - >ib - zwiększ wcięcia bloku ograniczonego ()
 - >at - zwiększ wcięcia bloku ograniczonego <>
 - 3== - popraw wcięcia trzech linii
 - =% - popraw wcięcia bloku ograniczonego () lub {} (kursor na nawiasie)
 - =iB - popraw wcięcia bloku wewnętrznego ogranoczonego {}
 - gg=G - popraw wcięcia całego bufora
 - ]p - wklej i dopasuj wcięcia do bieżącej linii
 
Wychodzenie
- :w - zapisz plik, ale nie wychodź
 - :w !sudo tee % - zapisz plik używając sudo
 - :wq or :x or ZZ - zapisz i wyjdź
 - :q - wyjdź (nie zadziała, jeśli są niezapisane zmiany)
 - :q! or ZQ - wyjdź i odrzuć niezapisane zmiany
 - :wqa - zapisz i zamknij wszystkie karty
 
Szukaj i zastąp
- /pattern - szukaj wzoru
 - ?pattern - szukaj wzoru wstecz
 - \vpattern - „magiczny” wzór: niealfanumeryczne znaki są rozumiane jako wyrażenia regularne - regex (bez wstawiania ukośników)
 - n - powtórz szukanie w tym samym kierunku
 - N - powtórz szukanie w przeciwnym kierunku
 - :%s/old/new/g - zastąp wszystkie stare z nowymi w całym pliku
 - :%s/old/new/gc - zastąp wszystkie stare z nowymi w całym pliku z potwierdzeniem
 - :noh[lsearch] - usuń podświetlone wyniki
 
Szukaj w wielu plikach równocześnie
- :vim[grep] /pattern/ {`{file}`} - szukaj wzorca w wielu plikach
 
- :cn[ext] - skocz do następnego dopasowania
 - :cp[revious] - skocz do poprzedniego dopasowania
 - :cope[n] - otwórz okno zawierające listę dopasowań
 - :ccl[ose] - zamknij okno zawierające listę dopasowań
 
Karty
- :tabnew or :tabnew {page.words.file} - otwórz plik w nowej karcie
 - Ctrl + wT - przesuń podzielone okno do oddzielnej karty
 - gt or :tabn[ext] - przesuń do następnej karty
 - gT or :tabp[revious] - przesuń do poprzedniej karty
 - #gt - przesuń do karty numer #
 - :tabm[ove] # - przesuń kartę do pozycji #th (liczonej od 0)
 - :tabc[lose] - zamknij kartę i wszystkie jej okna
 - :tabo[nly] - zamknij wszystkie karty oprócz bieżącej
 - 
            :tabdo command - wykonaj 
poleceniewe wszystkich kartach (np.:tabdo q- zamyka wszystkie otwarte karty) 
Praca z wieloma plikami
- :e[dit] plik - edytuj plik w nowym buforze
 - :bn[ext] - idź do następnego bufora
 - :bp[revious] - wróć do poprzedniego bufora
 - :bd[elete] - usuń bufor (zamknij plik)
 - :b[uffer]# - idź do bufora o numerze #
 - :b[uffer] file - idź do bufora o nazwie pliku
 - :ls or :buffers - zrób listę wszystkich otwartych buforów
 - :sp[lit] plik - otwórz plik w nowym buforze i podziel okno
 - :vs[plit] plik - otwórz plik w nowym buforze i podziel okno wertykalnie
 - :vert[ical] ba[ll] - edytuj wszystkie bufory w oknach pionowych
 - :tab ba[ll] - edytuj wszystkie bufory jako zakładki
 - Ctrl + ws - podziel okno
 - Ctrl + wv - podziel okno pionowo
 - Ctrl + ww - przełącz okno
 - Ctrl + wq - wyjdź z okna
 - Ctrl + wx - zmień bieżące okno z następnym
 - Ctrl + w= - wyrównaj wysokość i szerokość wszystkich okien
 - Ctrl + wh - przesuń kursor do lewego okna (podział pionowy)
 - Ctrl + wl - przesuń kursor do prawego okna (podział pionowy)
 - Ctrl + wj - przesuń kursor do okna poniżej (podział poziomy)
 - Ctrl + wk - przesuń kursor do okna powyżej (podział poziomy)
 - Ctrl + wH - przesuń bieżące okno maksymalnie w lewo i zmaksymalizuj jego wysokość
 - Ctrl + wL - przesuń bieżące okno maksymalnie w prawo i zmaksymalizuj jego wysokość
 - Ctrl + wJ - przesuń bieżące okno maksymalnie w dół i zmaksymalizuj jego szerokość
 - Ctrl + wK - przesuń bieżące okno maksymalnie w górę i zmaksymalizuj jego szerokość
 
Diff
- zf - ręcznie zdefiniuj zwinięcie poprzez ruch
 - zd - skasuj zwinięcie pod kursorem zdefiniowane znacznikami
 - za - zwiń, jeśli niezwinięte; rozwiń, jeśli zwinięte (pod kursorem)
 - zo - rozwiń zwinięcie pod kursorem
 - zc - zwiń pod kursorem
 - zr - zmniejsz (rozwiń) zwinięcia o jeden poziom
 - zm - zwiększ (zwiń) zwinięcia o jeden poziom
 - zi - włącz lub wyłącz funkcjonalność zwijania
 - ]c - skocz do początku następnej zmiany
 - [c - skocz do początku poprzedniej zmiany
 - do or :diffg[et] - pobierz różnice (z innego bufora)
 - dp or :diffpu[t] - przekaż różnice (do innego bufora)
 - :diffthis - bieżące okno staje się częścią diff
 - :dif[fupdate] - aktualizuj różnice
 - :diffo[ff] - wyłącz tryb różnic w bieżącym oknie