Edytor tekstowy vi 1. Cel ćwiczenia Celem ćwiczenia jest

Transkrypt

Edytor tekstowy vi 1. Cel ćwiczenia Celem ćwiczenia jest
Edytor tekstowy vi
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z działaniem edytora tekstowego vi stosowanego w
systemach UNIX i kompatybilnego z systemami POSIX, QNX.
2. Wstęp teoretyczny
W edytorze są dwa tryby pracy: tryb wydawania komend oraz tryb edycji. W trybie
edycji wszystkie klawisze działają zgodnie z intuicją. W trybie komend niektóre z
klawiszy mają szczególne znaczenie. Do trybu komend przechodzi się klawiszem Esc.
Do trybu edycji przechodzi się automatycznie po niektórych komendach.
Edytor uruchamia komenda
vi [parametr] nazwa_pliku
Lista parametrów:
-e
uruchomienie trybu wprowadzania komend,
-f
otwiera pliki specjalne,
-i
uruchomienie trybu normalnej edycji,
-m
skanuje plik w poszukiwaniu błędów,
-R
otwarcie pliku w trybie odczytu bez możliwości zmian.
2.1. Tryb edycji
Wstawianie tekstu
a
umieści tekst za kursorem,
A
umieści tekst na końcu bieżącej linii,
i
wstawi tekst przed kursorem,
I
wstawi tekst na początku bieżącej linii,
o
wstawi nową linię poniżej pozycji kursora,
O
wstawi nową linię powyżej pozycji kursora,
Operatory
c
zmienia,
d
usuwa,
y
kopiuje,
>
przesuwa w prawo,
<
przesuwa w lewo,
p
wkleja.
Poniższa lista przedstawia składnie form w jakich stosuje się operatory. Zapis dotyczący
liczby linii w kwadratowym nawiasie jest opcjonalny.
[n]cc
zmienia n linii
[n]dd
usuwa n linii
[n]yy
kopiuje n linii
[n]<<
przesuwa w lewo n linii
[n]>>
przesuwa w prawo n linii
Operator c zmienia tekst pomiędzy bieżącą pozycją kursora, a pozycją wskazywaną
przez objekt, np c2w – zmieni następne dwa wyrazy.
[n]cc
zmienia n linii,
R
zastępuje resztę linii tekstem,
s
zastępuje bieżący znak, jak polecenie c1,
S
zastępuje bieżącą linię, jak polecenie cc.
W trybie normalnego wprowadzania tekstu wszystkie klawisze służą do wstawiania
tekstu w miejscu gdzie znajduje się obecnie kursor za wyjątkiem poniższych:
Esc, Ctrl+[
przejście do trybu poleceń,
Ctrl+H
usuwa znak przed kursorem,
Ctrl+W
usuwa ostatnio wprowadzone słowo,
Ctrl+A
wstawia kopie ostatnio wprowadzonego tekstu
Ctrl+D
usuwa akapit,
Ctrl+L, Ctrl+R
odświeża ekran,
Enter, Ctrl+M
wstawia nową linię,
Ctrl+P
wstawia tekst zapisany w buforze
Ctrl+T
tworzy akapit,
Ctrl+U
wraca do początku linii,
2.2. Tryb komend
Większość komend rozpoczyna dwukropek.
Wyjście i zapis
:q!
:w
:wq, :x, zz
Ustawienia kursora
[n]h, ←, backspace
[n]l, →, space
[n]k, ↑, Ctrl+P
[n]j, ↓, Ctrl+J, Ctrl+N
wyjście bez zapisania zmian,
zapisuje dokonane zmiany,
wyjście z zapisaniem zmian,
przesuwa kursor w lewo,
przesuwa kursor w prawo,
przesuwa kursor do góry,
przesuwa kursor w dół,
[n]Ctrl+B
przewija stronę do tyłu,
[n]Ctrl+F
przewija stronę do przodu,
[n]$
przesuwa kursor na koniec linii,
^
przesuwa kursor na początek linii,
[n]w
przesuwa kursor na początek następnego wyrazu,
[n]W
przesuwa kursor na początek następnego wyrazu poprzedzonego
znakiem spacji,
[n]b
przesuwa kursor do poprzedniego wyrazu,
[n]B
przesuwa kursor do poprzedniego wyrazu oddzielonego znakiem spacji,
[n]e
[n]E
[n]G
[n]f<znak>
[n]F<znak>
[n]H
[n]L
M
[n];
[n],
przesuwa kursor na koniec wyrazu,
przesuwa kursor na koniec wyrazu oddzielonego znakiem spacji
przesuwa kursor do konkretnej linii domyślnie do ostatniej linii w pliku,
przesuwa do konkretnego znaku do przodu w bieżącej linii,
przesuwa do konkretnego znaku do tyłu w bieżącej linii,
przesuwa kursor do pierwszej linii u góry ekranu,
przesuwa kursor do ostatniej linii na dole ekranu,
przesuwa kursor do środkowej linii na ekranie,
powtarza komendy f, F w tym samym kierunku,
powtarza komendy f, F w przeciwnym kierunku.
Kopiowanie
yy
yw
4yy, 4yj
kopiuje bieżącą linię,
kopiuje od kursora do końca bieżącego słowa,
kopiuje 4 następne linie.
Usuwanie
dd
usuwa bieżącą linię,
dw
usuwa od kursora do końca bieżącego słowa,
4dd, 4dj
usuwa 4 kolejne linie.
Wklejanie
P
wkleja tekst przed kursorem,
p
wkleja tekst za kursorem.
Przesuwanie tekstu
>
przesuń w prawo,
<
przesuń w lewo,
[n]>>
przesuń n linii w prawo,
[n]<<
przesuń n linii w lewo.
Wyszukiwanie
/[wzór] Enter
/Enter
?[wzór] Enter
?Enter
n
przeszukaj dokument do przodu,
powtórz szukanie do przodu,
przeszukaj dokument wstecz,
powtórz szukanie wstecz,
powtórz szukanie,
Zastępowanie tekstu
:[x,y]s/tekst_oryginalny/zastąp_tekstem/[c] [g] [p]
Jeśli parametry c, g, p nie są podane ta komenda zamieni pierwszy znaleziony fragment
tekstu.
c
pyta przed zastąpieniem,
g
zastępuje wszystkie pasujące fragmenty w linii,
p
wyświetla wszystkie linie zawierające zastąpiony tekst.
Edycja innych plików
:e nazwa_pliku
edytuje wskazany plik,
:e! nazwa_pliku
nie zapisując zmian opuszcza edytowany plik i edytuje
wskazany,
:e #
wraca do poprzednio edytowanego pliku,
Opcje edytora
:set all
pokazuje listę opcji oraz wartości domyślne,
Inne przykładowe opcje to:
:set showmode
pokazuje w prawym dolnym rogu tryb pracy edytora,
:set -o vi
umożliwia dostęp do vi w wierszu poleceń,
:set number
pokazuje numery linii.
Pozostałe komendy
:sh
wyjście do powłoki,
:!komenda
uruchamia komendę, potem powraca do edytora,
[n].
powtarza ostatnio wykonaną komendę,
u
cofnij ostatnią komendę,
U
cofnij ostatnią zmianę tekstu,
D
usuwa od kursora do końca linii,
[n]J
dołącza następną linię do bieżącej,
:[x,y]j
łączy linie z podanego zakresu,
[n]x
usuwa n znaków od kursora w prawo,
[n]X
usuwa n znaków od kursora w lewo.
[n]~
zmienia wielość n liter,
[x,y]p
wyświetla tekst z podanego zakresu linii,
[x,y]nu
wyświetla tekst wraz z numerami linii wskazanych w zakresie,
3. Zadania do wykonania
Uruchomić edytor na dowolnym pliku, lub stworzyć nowy i zapoznać się z praktycznym
działaniem komend. Wszystkie operacje przeprowadzone na ćwiczeniu udokumentować
w sprawozdaniu.