Edytor VI

Edytor Vi jest jednym z najstarszych edytorów tekstu. Pierwsza jego wersja powstała w
Berkeley na Uniwersytecie Kalifornii. Jego nazwa pochodzi od słowa „visual” co należny rozumieć jako pełnoekranowy (oznacza to, ze na ekranie widoczny jest fragment pliku, możemy się po nim swobodnie poruszać, dokonywać zmian i dopisywać nowy tekst).
Obecnie Vi spotykamy niemal w każdej dystrybucji systemu Unix/Linux. Jeśli nie jest to
„oryginalny” Vi to na pewno jeden z jego klonów (edytorów Vi-poobnych). Najbardziej znanym i chyba najczęściej spotykanym jest VIM (ang. Vi IMproved). Posiada
on wiele udogodnień w stosunku do starszego brata. Przykładem może być rozbudowana obsługa wtyczek (plug-in), funkcje podświetlania składni języka czy ustawiania odpowiednich wciec w zależności od rozszerzenia edytowanego pliku.
Vim jest kompatybilny z pierwotnym Vi oznacza to, ze nie znając dodatkowych funkcji
oferowanych przez Vim można z niego korzystać jak z tradycyjnego Vi.
Początkowo edytor wydaje się być trudny w obsłudze, co zniechęca początkujących
użytkowników. Nieumiejętne posługiwanie się nim może często prowadzić do utraty danych. Jednak po zapoznaniu się z podstawami obsługi programu i wszystkich jego funkcji dodatkowych edytor staje się narzędziem potężniejszym niż pakiety typu Word czy StarOffice.
Objaśnienie funkcji przejścia:
vi nazwa
Przy pomocy polecenia:
ls - -help > plikhelp.txt
Edytuj plik przy pomocy VI, zamknij vi i wykonaj kolejne polecenie podane poniżej.
echo 'Twoje Imię i Nazwisko' >> plikhelp.txt
Edytuj jeszcze raz
plikhelp.txt
, a następnie wykonaj polecenie:
plikhelp.txt < echo 'Klasa Twoje Imię i Nazwisko'
Sprawdź co się stało, a następnie utwórz
plikls.txt
z zawartością manuala polecenia ls. Na tym pliku sprawdź funkcję edytora VI.

Objaśnienie funkcji przejścia:

i – rozpoczęcie wstawiania znaków w miejscu wskazywanym przez kursor
I – rozpoczęcie wstawiania znaków na początku linii, w której jest kursor
a – rozpoczęcie wstawiania znaków za znakiem wskazywanym przez kursor
A – rozpoczęcie wstawiania znaków na końcu linii, w której jest kursor
o – wstawienie nowej linii przed linia, w której jest kursor i rozpoczęcie wstawiania znaków
O – wstawienie nowej linii po linii, w której jest kursor i rozpoczęcie wstawiania znaków
s – wstawienie znaków w miejscu gdzie jest kursor (z nadpisaniem pierwszego znaku, lub
pierwszych n znaków)
R – rozpoczęcie edycji w trybie nadpisywania znaków, od znaku w miejscu kursora

Objaśnienie funkcji przejścia:

Klawisz
ESC – zakonczenie wprowadzania tekstu
: – przejście do linii komend
Zakonczenie sesji z edytorem vi:
ZZ – zapisanie zmodyfikowanego pliku i wyjscie z edytora
:q – wyjscie z edytora jesli plik nie został zmodyfikowany
:q! – porzucenie modyfikacji i wyjscie bez zapamietania
:x – zapisanie dokonanych modyfikacji pliku i zakonczenie edycji
Niektóre polecenia trybu wierszowego:
Uwaga! Przejscie z trybu pełnoekranowego do wierszowego odbywa sie poprzez wcisniecie
dwukropka (:).
:w
- zapis pliku na dysk
:w
plik
- zapis pliku na dysk z podana nazwa
:f
- wyświetlanie nazwy aktualnego pliku i numeru bieżącego wiersza
Ustawianie kursora w tekscie:
Uwaga! Przejście z trybu wydawania poleceń odbywa się poprzez wciśniecie klawisza Esc.
Ctrl-F
- 1 ekran do przodu
Ctrl-B
- 1 ekran do tyłu
Ctrl-U
- 1/2 ekranu do przodu
Ctrl-D
- 1/2 ekranu do tyłu
G
- koniec pliku
nG
- przejście do wiersza o numerze n
Ustawianie kursora na ekranie:
H
- górny wiersz ekranu
M
- środkowy wiersz ekranu
L
- dolny wiersz ekranu
Lokalne ruchy kursorem:
w wiekszosci systemów mozna korzystac z klawiszy oznaczajacych strzałki. Ponadto:
h
- jedna pozycja w lewo
l
- jedna pozycja w prawo
j
- jedna pozycja w dół
k
- jedna pozycja w góre
0
- poczatek biezacego wiersza
$
- koniec biezacego wiersza
Ruchy kursorem wyrazone elementami tekstu
w podanych tutaj poleceniach słowo oznacza ciag znaków alfanumerycznych bez otaczającej je
interpunkcji.
w
- o jedno słowo do przodu
b
- o jedno słowo do tyłu
e
- do końca aktualnego wiersza
Poszukiwania:
/tekst
- ustawia kursor na pierwszym wystąpieniu tekst (szuka w dół od kursora)
?tekst
- jak /tekst, lecz szuka w górę od kursora
n
- ustawia kursor na kolejnym wystąpieniu tekstu szukanego przez /tekst lub ?tekst
:s/txt1/txt2
- zamienia pierwsze wystąpienie txt1 w bieżącym wierszu tekstem txt2
&
- ponawia ostatnio wykonaną zamianę od bieżącej pozycji kursora
:s/txt1/txt2/g
- zamienia wszystkie wystąpienia txt1 w bieżącym wierszu tekstem txt2
:%s/txt1/txt2/g
- zamienia wszystkie wystąpienia txt1 w całym dokumencie tekstem txt2
(jeśli zamiast /g podamy /gc konieczne będzie potwierdzenie każdej zamiany)
:g/txt/polecenie
- polecenie działające globalnie na wierszach zawierających txt, np. :g/^$/
d – usuwa wszystkie puste wiersze z dokumentu
Umieszczanie fragmentów tekstu w buforach:
yy -
umieszczenie bieżącego wiersza w buforze bez nazwy
yw -
umieszczenie słowa w buforze bez nazwy
y/x -
umieszczenie tekstu az do najbliższego wystąpienia znaku
x
w buforze bez nazwy
Bufory określa się poprzedzając polecenie cudzysłowem i nazwa bufora:
”ayy
umieszczenie biezacego wiersza w buforze
a
Przywoływanie zawartości buforów:
p -
umieszczenie zawartości bufora bez nazwy za bieżąca pozycja
P -
umieszczenie zawartości bufora bez nazwy przed bieżąca pozycja
”ap -
umieszczenie zawartości bufora
a
za bieżąca pozycja
Usuwanie tekstu:
D
- od biezacej pozycji do konca wiersza (jak d$)
x
- usuniecie znaku pod kursorem
X
- usuniecie znaku przed kursorem
dd
- usuniecie biezacego wiersza
ndd
- usuniecie n wierszy
d0
- usuń tekst od początku wiersza do pozycji kursora
dG
- usuń tekst od pozycji kursora do końca dokumentu
dw
- usuń następne słowo
db
- usuń poprzednie słowo
Odtwarzanie tekstu:
u
- cofniecie ostatniej operacji
U
- odtworzenie stanu biezacego wiersza
.
- powtórzenie ostatniej zmiany
Inne:
J
- połącz dwa wiersze
xp
- zamiana miejscami dwóch kolejnych znaków (korekta czeskiego błędu) – kursor
powinien być na pierwszym z nich (odpowiednik usunięcia
x
i wstawienia na prawo od
kursora
p
)
:x ,yw plik
- zapisz wiersze od
x
do
y
do pliku
plik
(
x
,
y
mogą być numerami wierszy,
znakiem
.
oznaczającym bieżący wiersz lub kombinacją
.+
n
oznaczającą bieżący i
n
kolejnych wierszy, np.
.,.+2w plik
zapisuje trzy kolejne wiersze, począwszy od bieżącego, do
pliku
plik
)
~
- zmiana wielkości liter (z małych na wielkie i odwrotnie) – działa na znak pod
kursorem
fznak
- przesuwa kursor w bieżącym wierszu do pierwszego wystąpienia znaku
znak
:e nazwa -
otworzenie pliku do edycji

Zadania

  1. Otwórz edytor VI i wpisz tam swój adres. Zapisz go jako imie_nazwisko.