Otworzenie pliku i wczytanie zawartości do bufora:
$ vim plik
Tryby pracy:
tryb komend - wciśnięte klawisze wykonują komendy, np. dw kasuje wyraz. Domyślny tryb, w którym uruchamiany jest edytor.
tryb edycji - wprowadzanie tekstu, jak w tradycyjnych edytorach
tryb linii komend - wprowadzanie komend słownych od znaku :, np. :quit
tryby | Esc | powrót do ,,normalnego” trybu pracy |
pracy | :polecenie | wydawanie poleceń z linii komend (np. :quit) |
i, a, o, c | przejście do trybu edycji tekstu | |
I, A, O, C | ||
obsługa | :q[uit]!, ZQ | wyjście z vim-a bez zapisu |
plików | :wq, ZZ | zapisz i wyjdź |
:e[dit] plik | otwórz plik | |
:r[ead] plik | wklej do bufora zawartość pliku | |
:w[rite] | zapisz plik | |
:w[rite] [nazwa pliku] | zapisz plik jako | |
:f[ile], Ctrl-g | wyświetla informacje o pliku | |
:f[ile] nazwa | zmiana nazwy edytowanego pliku | |
pomoc | :help | dokumentacja |
:help komenda | opis danej komendy |
ruch | l, , spacja | znak do przodu |
kursora | h, , backspace | znak do tyłu |
k, | w górę | |
j, | w dół | |
w, W | następne słowo | |
b, B | poprzednie słowo | |
początek linii | ||
$ | koniec linii | |
return | początek następnej linii | |
- | początek poprzedniej linii | |
( | poprzednie zdanie | |
) | następne zdanie | |
{ | poprzedni akapit | |
} | następny akapit | |
H | początek ekranu | |
M | środek ekranu | |
L | koniec ekranu | |
liczba G, :liczba | idź do linii numer liczba | |
G, :1 | początek pliku | |
gg, :% | koniec pliku | |
ruch | Ctrl-b, PageUp | poprzednia strona |
ekranu | Ctrl-f, PageDown | następna strona |
okna | C-w n, :new [plik] | otwiera nowe okno |
C-w s, :sp[lit] [plik] | dzieli okno w poziomie | |
C-w v, :vs[plit] [plik] | dzieli okno w pionie | |
C-w w | przejście do następnego okna | |
C-w q, :q[uit] | zamknięcie bieżącego okna | |
C-w o, :on[ly] | zamknięcie pozostałych okien |
edycja | i | przed kursorem |
tekstu | I | od początku linii |
a | za kursorem | |
A | na końcu linii | |
o | w nowej linii poniżej | |
O | w nowej linii powyżej | |
usuwanie | d obiekt | usuwa obiekt np. d$ usuwa tekst do końca linii |
tekstu | x | usuwa znak, np. 5x usuwa pięć kolejnych znaków |
X | usuwa poprzedzający znak | |
dd | usuwa linię | |
D | usuwa tekst do końca linii |
zamiana | c obiekt | zamienia obiekt, np. c4w zmienia 4 kolejne słowa |
tekstu | s | usunięcie znaku i początek edycji |
cc, S | usunięcie linii i początek edycji | |
C | usuń tekst do końca linii i przejdź do edycji | |
r | zamień literę pod kursorem | |
R | uruchamia tryb zamiany (nadpisywania) | |
kopiuj, | y obiekt | kopiuje obiekt do schowka |
wklej | yy | kopiuje linię do schowka (lub rejestru) |
(schowek) | Y | kopiuje tekst do końca linii |
p, P | wkleja zawartość schowka (lub rejestru) | |
zaznaczanie | v | zaznaczanie tekstu wizualne |
tekstu | V | zaznaczanie tekstu od początku linii |
C-v | zaznaczanie tekstu kolumnami (blokowe) | |
o | zamiana początku bloku z pozycja kursora |
rejestry | :reg[isters] | lista rejestrów |
---|---|---|
“{a-zA-Z0-9} AKCJA | wykonanie danej akcji na rejestrze | |
np. ”ayw skopiowanie wyrazu do rejestru a | ||
cofnij | u, U | undo - cofnij ostatnią operację |
Ctrl-r | redo - cofnij ostatnie undo | |
szukaj | /wyrażenie | szukaj (do przodu) |
?wyrażenie | szukaj (do tyłu) | |
n, N | znajdź następny | |
% | szuka zamykającego nawiasu | |
zamień | :[zakres]s/szukane_wyrażenie/zamień_na[/g] | |
gdzie: zakres - oznacza zakres linii oddzielonych przecinkiem (np. 1,10) definiując zakres możemy użyć znaków: $ ostatnia linia, kropka ”.” to aktualna linia, % cały plik (np. .,$ oznacza od aktualnego miejsca do końca pliku) g - zastąp globalnie (więcej niż raz w linii) |
znaczniki | m{a-zA-Z} | ustawia znacznik ({a-z} dotyczą bieżącego bufora) |
‘{a-zA-Z} | przesuwa kursor do znacznika oznaczonego daną literą | |
“ | powrót do poprzedniej pozycji kursora | |
:marks | lista ustawionych znaczników | |
powłoka | :sh | uruchomienie powłoki |
:!polecenie | wykonanie polecenia powłoki | |
!!polecenie | rezultat polecenia umieszczany jest w buforze |
powtórzenia | liczba AKCJA | np. 6dd usunie sześć kolejnych linii z bufora |
. (kropka) | powtórzenie ostatniej operacji | |
skoki | C-o | poprzednia pozycja na liscie skoków |
C-i, Tab | następna pozycja na liście skoków | |
makro | q litera polecenia q | zapis makra (sekwencji poleceń) pod nazwą (literą) [a-zA-Z0-9] |
@ litera | odtwarzanie makra zapisanego pod literą | |
inne | :set spell spelllang=pl | sprawdzanie pisowni |
Uruchom program vimtutor, przejrzyj otworzony dokument i wykonaj zawarte w nim ćwiczenia
Korzystając z vim-a utwórz plik hello.c zawierający poniższy fragment kodu
#include<stdio.h> int main() { puts("Witaj świecie!"); }
Włącz kolorowanie składni :syntax on. Zapisz plik i skompiluj za pomocą gcc.
Kompilację można zrobić w vimie poleceniem :!gcc %
Zagraj w grę Vim Adventures https://vim-adventures.com/