Polecenia vi w Linuksie: 3 tryby Vima i tryb wizualny

Otwarcie vi i brak reakcji na wpisywane znaki albo zamknięcie okna, bo nie wiadomo, jak wyjść — przez to przechodzi raz prawie każdy, kto pierwszy raz pracuje na serwerze. Polecenie vi w Linuksie ma osobny tryb normalny i tryb wstawiania, więc gdy wiesz, w którym jesteś, reszta to kilka klawiszy. Ten wpis zbiera w tabelach trzy tryby i polecenia każdego z nich, a vi wypróbujesz sam na wirtualnym serwerze w przeglądarce.
W AlmaLinux 9.8 vi i vim pochodzą z pakietu vim 8.2, a ekrany i komunikaty w tym wpisie otwarto w vim. Jeśli nie jest zainstalowany, zainstaluj go przez [dnf -y install vim-enhanced].
✅ Trzy tryby vi
W vi ten sam klawisz robi co innego zależnie od trybu. Plik otwiera się w trybie normalnym; i przenosi do trybu wstawiania, by pisać, Esc wraca, a dwukropek [:] przenosi do trybu ostatniego wiersza, by zapisać i wyjść.
| Tryb | Klawisz wejścia | Zadanie |
|---|---|---|
| Tryb normalny | Tu startuje vi · Esc z każdego innego trybu | Ruch kursora, usuwanie, kopiowanie, wklejanie, cofanie |
| Tryb wstawiania | i a I A o O | Wpisywanie tekstu. [-- INSERT --] na dole ekranu |
| Tryb ostatniego wiersza | : | Zapis, wyjście, zamiana, numery wierszy. Na dole ekranu pojawia się : |
| Tryb wizualny | v V Ctrl-v | Zaznaczenie zakresu, a potem usuwanie, kopiowanie lub wstawianie we wszystkich wierszach |
Plik z konsoli można otworzyć na trzy sposoby.
| Polecenie | Opis |
|---|---|
| vi nazwapliku | Otwiera plik w trybie normalnym. Jeśli pliku nie ma, zostaje utworzony i pojawia się [New] |
| vi +20 nazwapliku | Otwiera z kursorem w wierszu 20 |
| view nazwapliku= vi -R | Otwiera tylko do odczytu. Edycja daje ostrzeżenie [W10], zapis daje [E45] |
Wpisz [vi httpd.conf] na wirtualnym serwerze poniżej, by otworzyć vi, a menu po lewej przełączy się na polecenia wewnątrz vi. Kliknięcie chipa wysyła ten klawisz na ekran; możesz też wpisać go z klawiatury.
✅ Zestawienie poleceń vi w Linuksie
🔲 Ruch kursora
| Klawisz | Opis |
|---|---|
| h j k l← ↓ ↑ → | Przesuń o jeden znak. Strzałki też działają |
| 0 · ^ | Początek wiersza (0) · pierwszy znak niebędący spacją (^) |
| $ | Koniec wiersza |
| w · b · e | Początek następnego słowa · początek poprzedniego słowa · koniec następnego słowa |
| gg · G | Pierwszy wiersz · ostatni wiersz pliku |
| 20Gto samo co :20 | Do wiersza 20. Zmień liczbę, by przejść do innego wiersza |
| H · M · L | Górny · środkowy · dolny wiersz ekranu |
| Ctrl-f · Ctrl-b | Ekran w dół · w górę |
| Ctrl-d · Ctrl-u | Pół ekranu w dół · w górę |
🔲 Wejście w tryb wstawiania
Niezależnie od klawisza wejścia po skończeniu pisania naciśnij Esc. cw, cc, C i s usuwają i od razu przenoszą do trybu wstawiania, więc poprawianie słowa lub wiersza jest szybsze niż osobne x oraz i.
| Klawisz | Opis |
|---|---|
| i · a | Pisanie przed (i) · za (a) kursorem |
| I · A | Pisanie na początku (I) · końcu (A) wiersza |
| o · O | Nowy pusty wiersz poniżej (o) · powyżej (O) i pisanie |
| cw | Usunięcie od kursora do końca słowa i pisanie |
| cc | Usunięcie całego wiersza i pisanie |
| C | Usunięcie od kursora do końca wiersza i pisanie |
| s | Usunięcie jednego znaku i pisanie |
| Esc | Koniec pisania i powrót do trybu normalnego |
🔲 Usuwanie i edycja
Dodaj klawisz ruchu po d, a ten zakres zostanie usunięty. dw usuwa słowo, dd wiersz, dG wszystko do końca pliku, a liczba z przodu powtarza to tyle razy.
| Klawisz | Opis |
|---|---|
| x · X | Usunięcie znaku pod (x) · przed (X) kursorem. 3x usuwa trzy |
| dw | Usunięcie od kursora do końca słowa |
| dd | Usunięcie wiersza. 3dd usuwa trzy wiersze |
| D= d$ | Usunięcie od kursora do końca wiersza |
| d0 | Usunięcie od początku wiersza do kursora |
| dG | Usunięcie od bieżącego wiersza do końca pliku |
| :6d · :6,10d | Usunięcie wiersza 6 · usunięcie wierszy 6–10 |
| J | Dołączenie następnego wiersza na końcu bieżącego |
| r | Zamiana znaku pod kursorem na następny wpisany |
| ~ | Zmiana wielkości liter |
| >> · << | Wcięcie · cofnięcie wcięcia wiersza |
🔲 Kopiowanie, wklejanie i cofanie
Usunięty tekst wkleisz przez p tak jak skopiowany, więc dd, a potem p przesuwa wiersz w dół. u cofa wiele zmian, a Ctrl-r przywraca to, co cofnięto.
| Klawisz | Opis |
|---|---|
| yy | Kopiowanie wiersza. 3yy kopiuje trzy wiersze |
| yw | Kopiowanie od kursora do końca słowa |
| p · P | Wklejenie poniżej (p) · powyżej (P). Przy kopiowaniu znakowym za · przed kursorem |
| :1 co 7to samo co :1 t 7 | Kopiowanie wiersza 1 pod wiersz 7 |
| :1,7 co 8 | Kopiowanie wierszy 1–7 pod wiersz 8 |
| :1 m 8 | Przeniesienie wiersza 1 pod wiersz 8 |
| u | Cofnij. Naciskaj dalej, by cofać kolejne zmiany |
| Ctrl-r | Ponowienie cofniętej zmiany |
| . | Powtórzenie ostatniej zmiany |
🔲 Wyszukiwanie i zamiana
Zamiana odbywa się w trybie ostatniego wiersza. Bez zakresu dotyczy tylko bieżącego wiersza, [%] obejmuje cały plik, a bez g na końcu zmienia się tylko pierwsze dopasowanie w każdym wierszu.
| Klawisz | Opis |
|---|---|
| /tekst | Szukanie w dół od kursora. Na końcu wraca na górę: [search hit BOTTOM, continuing at TOP] |
| ?tekst | Szukanie w górę od kursora |
| n · N | Następne dopasowanie w tym samym kierunku (n) · w przeciwnym (N) |
| * | Szukanie w dół słowa pod kursorem |
| :s/old/new/ | Pierwsze old w bieżącym wierszu na new |
| :s/old/new/g | Każde old w bieżącym wierszu na new |
| :%s/old/new/g | Każde old w całym pliku na new |
| :10,20s/old/new/g | Każde old w wierszach 10–20 na new |
| :%s/old/new/gc | Pytanie przed każdą zmianą (y zmień · n pomiń · a wszystkie · q koniec) |
🔲 Zapis, wyjście i numery wierszy
| Klawisz | Opis |
|---|---|
| :w | Zapis. Po zakończeniu: [36L, 1094B written] |
| :w nazwapliku | Zapis pod inną nazwą. Oryginalny plik zostaje bez zmian |
| :wq= :x = ZZ | Zapis i wyjście |
| :q | Wyjście. Przy niezapisanych zmianach: [E37: No write since last change] |
| :q! | Wyjście bez zapisu |
| :set nu · :set nonu | Pokaż · ukryj numery wierszy |
✅ Komentowanie kolumny w trybie bloku wizualnego Vima
Aby wstawić ten sam tekst na początku wielu wierszy, użyj trybu bloku wizualnego zamiast naciskać i w każdym wierszu. W trybie normalnym v zaznacza znakami, Shift-v wierszami, a Ctrl-v kolumnami.
Tak zakomentujesz cały blok pliku konfiguracyjnego. Ustaw kursor na pierwszym znaku pierwszego wiersza, naciśnij Ctrl-v, zejdź j, zaznaczając wiersze, potem naciśnij I, wpisz # i naciśnij Esc.



Usuwanie komentarzy działa tak samo. Ustaw kursor na # w pierwszym wierszu, zaznacz w dół przez Ctrl-v, naciśnij x, a zaznaczona kolumna zniknie od razu. Możesz to wypróbować na vhost.conf w symulatorze powyżej.
ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.