Globalne

  • :help keyword - otwórz pomoc dla słowa kluczowego
  • :saveas file - zapisz plik jako
  • :close - zamknij okienko nawigacji
  • K - open man page for word under the cursor

Poruszanie kursorem

  • h - przesuń kursor w lewo
  • j - przesuń kursor w dół
  • k - przesuń kursor w górę
  • l - przesuń kursor w prawo
  • 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ę)
  • % - przesuń do pasującego znaku (standardowo wspierane pary: '()', '{}', '[]' - użyj :h matchpairs w Vimie po więce 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
  • 5G - skocz do linii 5
  • fx - przesuń kursor na pierwszy znaleziony znak 'x'
  • tx - przesuń kursor przed pierwszy znaleziony znak 'x'
  • Fx - jump to previous occurence of character x
  • Tx - jump to after previous occurence of character x
  • ; - repeat previous f, t, F or T movement
  • , - repeat previous f, t, F or T movement, backwards
  • } - 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
  • Ctrl + e - move screen down one line (without moving cursor)
  • Ctrl + y - move screen up one line (without moving cursor)
  • 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ę
Tip Poprzedź komendę ruchu kursora liczbą powtórzeń. Na przykład 4j przesunie w dół 4 wiersze

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
  • Esc - wyjdź z trybu wstawiania

Edycja

  • r - zamień pojedynczy znak pod kursorem
  • J - połącz wiersze: dodaj wiersz poniżej do bieżącego
  • gJ - join line below to the current one without space in between
  • gwip - reflow paragraph
  • cc - zastąp cały wiersz
  • C - change (replace) to the end of the line
  • c$ - zastąp na końcu wiersza
  • ciw - change (replace) entire word
  • cw - 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
  • 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 {}
  • ib - wewnętrzny blok z ()
  • iB - wewnętrzny blok z {}
  • Esc - 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

Rejestry

  • :reg - pokaż zawartość rejestrów
  • "xy - kopiuj do rejestru x
  • "xp - wklej zawartość rejestru x
Tip Rejestry zostały zapisane w ~/.viminfo i zostaną załadowane przy ponownym uruchomieniu vima
Tip Rejestr 0 zawsze zawiera wartość ostatnio skopiowanego polecenia

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

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
  • y$ - kopiuj na koniec wiersza
  • p - wklej zawartość schowka za kursorem
  • P - wklej przed kursorem
  • dd - kasuj wiersz
  • 2dd - kasuj dwa wiersze
  • dw - kasuj litery wyrazu od miejsca, gdzie znajduje się kursor, na początek następnego słowa
  • D - kasuj na końcu wiersza
  • d$ - kasuj na końcu wiersza
  • x - usuń znak

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 - write (save) and quit on all tabs

Szukaj i zastąp

  • /pattern - szukaj wzoru
  • ?pattern - szukaj wzoru wstecz
  • \vpattern - 'magiczny' wzór: nie alfanumeryczne 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 - usuń podświetlone wyniki

Szukaj w wielu plikach równocześnie

  • :vimgrep /pattern/ {file} - szukaj wzorca w wielu plikach
e.g. :vimgrep /foo/ **/*
  • :cn - skocz do następnego dopasowania
  • :cp - skocz do poprzedniego dopasowania
  • :copen - otwórz okno zawierające listę dopasowań

Praca z wieloma plikami

  • :e file - edytuj plik w nowym buforze
  • :bnext or :bn - idź do następnego bufora
  • :bprev or :bp - wróć do poprzedniego bufora
  • :bd - usuń bufer (zamknij plik)
  • :ls - zrób listę wszystkich otwartych buforów
  • :sp file - otwórz plik w nowym buforze i podziel okno
  • :vsp file - otwórz plik w nowym buforze i podziel okno wertykalnie
  • Ctrl + ws - podziel okno
  • Ctrl + ww - przełącz okno
  • Ctrl + wq - wyjdź z okna
  • Ctrl + wv - podziel okno wertykalnie
  • Ctrl + wh - przesuń kursor do lewego okna (podział wertykalny)
  • Ctrl + wl - przesuń kursor do prawego okna (podział wertykalny)
  • Ctrl + wj - przesuń kursor do okna poniżej (podział horyzontalny)
  • Ctrl + wk - przesuń kursor do okna powyżej (podział horyzontalny)

Karty

  • :tabnew or :tabnew file - otwórz plik w nowej karcie
  • Ctrl + wT - przesuń podzielone okno do oddzielnej karty
  • gt or :tabnext or :tabn - przesuń do następnej karty
  • gT or :tabprev or :tabp - przesuń do poprzedniej karty
  • #gt - przesuń do karty numer #
  • :tabmove # - przesuń kartę do pozycji #th (liczonej od 0)
  • :tabclose or :tabc - zamknij kartę i wszystkie jej okna
  • :tabonly or :tabo - zamknij wszystkie karty oprócz bieżącej
  • :tabdo command - wykonaj polecenie we wszystkich kartach (np. :tabdo q - zamyka wszystkie otwarte karty)