Vim

Jeden z najpopularniejszych edytorów tekstu w systemach Unixowych.

Vim jest edytorem modalnym, tzn. ma kilka trybów pracy. Najważniejsze z nich to NORMAL, VISUAL, INSERT, REPLACE.

Zmiana trybu pracy

Po uruchomieniu Vim zawsze znajduje się w trybie NORMAL.

  • ESC - przejście z dowolnego trybu do trybu NORMAL
  • : - tryb Ex
  • R - tryb REPLACE
  • v - tryb VISUAL - w tym trybie można zaznaczać, kopiować, duplikować i wklejać tekst
  • i - tryb INSERT - w tym trybie można wprowadzać tekst. Do trybu INSERT przechodzimy także po wykonaniu poleceń takich jak o (nowa linia), a (append).

Rozpoczynanie pracy

  • vi nazwa_pliku.txt - otwarcie/założenie pliku
  • vi +5 nazwa_pliku.txt - otwarcie pliku z kursorem ustawionym w 5-tej linii
  • vi +/tekst nazwa_pliku.txt - otwarcie pliku z kursorem ustawionym w linii zawierającej „tekst”

Tryb poleceń (Ex)

  • :w - zapisanie zmian w pliku
  • :q - wyjście z programu
  • :vi nazwa_pliku - otwarcie pliku do edycji
  • :view nazwa_pliku - otwarcie pliku w trybie tylko do odczytu
  • /xxx - wyszukanie ciągu liter w tekście, gdzie xxx to szukany napis; n - przejście do kolejnego wystąpienia

Tryb VISUAL

Do trybu VISUAL wchodzimy z trybu NORMAL naciskając klawisz v. Teraz za pomocą strzałek możemy zaznaczać tekst. Jeżeli zamiast v naciśniemy Ctrl+v będziemy w trybie zaznaczania kolumnowego.

  • y - skopiowanie zaznaczonego tekstu
  • p - wklejenie zaznaczonego tekstu

Edycja tekstu

W trybie NORMAL naciskamy klawisz:

  • i - insert (wstawianie przed kursorem)
  • a - append (wstawianie za kursorem)
  • I - insert na początku wiersza
  • A - append na końcu wiersza
  • o - nowy wiersz pod kursorem
  • O - nowy wiersz nad kursorem
  • x - usunięcie znaku pod kursorem
  • X - usunięcie znaku przed kursorem
  • dd - usunięcie wiersza
  • D lub $d - usunięcie tekstu od kursora do końca linii
  • dG - usunięcie tekstu od bieżącej linii do końca pliku
  • dg - usunięcie tekstu od bieżącej linii do początku pliku
  • u - cofnięcie ostatniej zmiany

Poruszanie się po tekście

W trybie NORMAL (ten po naciśnięciu <ESC>) naciskamy klawisz:

  • h - przejście w lewo o 1 znak
  • j - przejście w dół o 1 linijkę
  • k - przejście w górę o 1 linijkę
  • l - przejście w prawo o 1 znak
  • w - przejście do następnego słowa (word) (1 słowo w prawo)
  • b - przejście do poprzedniego słowa (word) (1 słowo w lewo)
  • e - przejście do końca tego słowa (word) w prawo
  • W - przejście do następnego SŁOWA (WORD) (1 SŁOWO w prawo)
  • B - przejście do poprzedniego SŁOWA (WORD) (1 SŁOWO w lewo)
  • E - przejście do końca tego SŁOWA (WORD) w prawo
  • /szukana_fraza<Enter> - wyszukanie i przejście do szukanej frazy

Przykład różnicy między słowo (word) a SŁOWO (WORD)

  • Na zasadzie kolejnych pozycji kursora przy klikaniu w:

mam kota-i-psa, lalala

  • Na zasadzie kolejnych pozycji kursora przy klikaniu W:

mam kota-i-psa, lalala

Okna

W trybie NORMAL (ten po naciśnięciu <ESC>) wciskamy klawisz(e):

  • <Ctrl>+s - dzielimy okno do układu 2×1 (wiersze x kolumny)
  • <Ctrl>+v - dzielimy okno do układu 1×2 (wiersze x kolumny)


Okna domyślnie wyświetlają ten sam plik.
Można teraz np. w 1 oknie iść na górę pliku (gg) i sprawdzić zdefiniowane stałe (const-y)
tak aby móc je poprawnie wpisać w oknie nr 2 (tu kursor wciąż stoi na swoim poprzednim miejscu).

  • :q<Enter> zamykanie danego okna
  • <Ctrl>+h - przejście kursorem do okna po lewej
  • <Ctrl>+l - przejście kursorem do okna po prawej
  • <Ctrl>+j - przejście kursorem do okna poniżej
  • <Ctrl>+k - przejście kursorem do okna powyżej

Kopiowanie tekstu

  • yy - skopiowanie całego wiersza do schowka
  • p - wklejenie linii pod kursorem
  • yw - skopiowanie słowa

Łączenie poleceń

Naciskając sekwencję klawiszy, można utworzyć bardziej złożone polecenie. Oto przykłady.

  • y3w - skopiowanie trzech słów
  • 10y - skopiowanie dziesiątej linii
  • d2w - usunięcie dwóch słów
  • 7p - wklejenie skopiowanego tekstu siedem razy
  • 5dd - usunięcie pięciu linii
  • 10G - przeniesienie kursora do dziesiątego wiersza