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/