5 Edytory tekstu

5.1 Vim

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

5.1.1 Podstawowe polecenia vim

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
0 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

5.1.2 Ćwiczenia

  1. 1.

    Uruchom program vimtutor, przejrzyj otworzony dokument i wykonaj zawarte w nim ćwiczenia

  2. 2.

    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 %

  3. 3.

    Zagraj w grę Vim Adventures https://vim-adventures.com/