uzupe-
łnienie wprowadzanego wzorca poprzez dopasowanie go do wzorca znajdującego
się u góry ,
dole ,
bu edycji. W trybie poleceń dostępne są następujące opcje:
/wzorzec znajduje wystąpienie wzorca w pliku, przeszukiwanie w dół ,
?wzorzec jak wyżej, ale w górę ,
!polecenie wykonanie polecenia powłoki,
:q wyjście z edytora,
:q! - wyjście z edytora, bez zapisywania zmian,
:wq wyjście z zapisaniem zmian,
:sp podzielenie bieżącego okna na dwie części,
:e nazwapliku otwarcie pliku do edytowania,
:s/wzorzec/zastąpienie zastąpienie wzorca podanym ciągiem w linii, w której
znajduje się kursor,
:%s/wzorzec/zastąpienie to samo co wyżej, ale dla całego pliku,
:%s/wzorzec/zastąpienie/g to samo co wyżej, ale również dla każdego wy-
stąpienia wzorca w wierszu,
:set number włączenie numeracji wierszy,
:set nonumber wyłączenie numeracji wierszy,
:tabnew otworzenie nowej karty (od wersji 7.0),
:tabnext przejście do następnej karty (od wersji 7.0),
3
:tabprev przejście do poprzedniej karty (od wersji 7.0),
:10 przeniesienie kursora do wiersza o podanym numerze,
:make wykonanie kompilacji bez opuszczania edytora, o ile istnieje plik make-
file,
:cnext wyszukanie kolejnego błędu w kodzie, jeśli kompilacja się nie powiodła,
:cprevious to co wyżej, ale poprzedniego błędu,
:clist wypisuje skróconą listę błędów,
:clist! - wypisuje pełną listę błędów.
Część z tych poleceń może zostać automatycznie wykonana po uruchomieniu
VIMa, jeśli zostaną zapisane w pliku .vimrc. Oto przykładowy taki plik:
set nocp "wyłącz tryb kompatybilności z VI
set nowrap "wyłącz zawijanie wierszy
set autoindent shiftwidth=8 "ustaw głębokość wcięć na 8 znaków
set showcmd "pokaż komendy wpisywane w trybie edycji
map
map
map
map
map
map
2. Podręcznik man
Podręcznik man zawiera opisy poleceń powłoki, oraz funkcji języka C. Składnia
wywołania jest następująca: man nazwa polecenia. W przypadku, kiedy istnieje
zarówno funkcja, jak i polecenie o takiej samej nazwie, to należy podać jeszcze
stronę podręcznika, np.: man 3 printf.
3. Kompilator gcc i inne narzędzia do tworzenia programów
Kompilator gcc jest tak naprawdę zbiorem kompilatorów stworzonym przez or-
ganizację GNU. Kompilator ten wywołuje się podając mu argumenty w linii po-
leceń. W najprostszym przypadku wystarczy napisać: gcc nazwa.c, ale za-
lecanym sposobem jest: gcc -Wall -o nazwa nazwa.c, gdzie flaga -o oznacza na-
zwę zbioru wynikowego, a flaga -Wall nakazuje włączenie wszystkich ostrzeżeń.
1 W tym trybie, jeśli stawiamy nawias zamykający, to kursor na sekundę wraca do nawiasu
otwierającego
4
Oczywiście powyższe wywołanie może przyjąć formę bardziej złożoną. W takim
wypadku, aby uniknąć wielokrotnego wpisywania długich poleceń możemy się
posłużyć programem o nazwie make. Aby to uczynić należy przygotować plik
o nazwie makefile w katalogu, w którym znajdują się zródła programu. Treść
takiego pliku tworzymy według następującego schematu (linie zaczynające się
od # stanowią komentarz):
reguła: reguła1 reguła2 #po nazwie reguły umieszczamy opis wymagań
akcja
#Pusty wiersz
reguła1:
akcja
#Pusty wiersz
reguła2:
akcja
Z powyższego przykładu wynika, że wymagania co do reguł są opcjonalne i nie-
koniecznie musimy je wypisywać. Domyślnie wykonywana jest pierwsza za-
deklarowana w pliku reguła. Możliwa jest również deklaracja na początku pliku
pewnych stałych do których się będziemy odwoływać poprzedzając je znakiem
dolara. Oto przykład rozbudowanego pliku makefile:
CC = gcc #stała oznaczająca nazwę kompilatora
OFLAGS = -Wall -O2 -o #stała przechowująca flagi wywołania kompilatora
#Pusty wiersz
all: primitive primitive16 check_prim check_prim_16
#Pusty wiersz
#Pusty wiersz
primitive:primitive.c #Reguła primitive wymaga pliku primitive.c by zadziałać
$(CC) $(OFLAGS) primitive primitive.c
#Pusty wierz
primitive16:primitive16.c
$(CC) $(OFLAGS) primitive16 primitive16.c
#Pusty wiersz
check_prim:check_prim.c
$(CC) $(OFLAGS) check_prim check_prim.c
5
#Pusty wiersz
check_prim_16:check_prim_16.c
$(CC) $(OFLAGS) check_prim_16 check_prim_16.c
#Pusty wiersz
clean:
rm -f *~
rm -f core*
#Pusty wiersz
cleanprimitive:
rm -f *~
rm -f core*
rm -f primitive
#Pusty wiersz
cleanprimitive16:
rm -f *~
rm -f core*
rm -f primitive16
cleancheck_prim:
rm -f *~
rm -f core*
rm -f check_prim
#Pusty wiersz
cleancheck_prim_16:
rm -f *~
rm -f core*
rm -f check_prim_16
#Pusty wiersz
cleanall:
rm -f *~
6
rm -f core*
rm -f primitive
rm -f check_prim
rm -f check_prim_16
rm -f primitive16
Proszę zwrócić uwagę, że reguła all jest regułą pustą - w miejscu gdzie powinna
być zdefiniowana jej akcja znajduje się pusty wiersz. Mimo tego jest to pierwsza
reguła i program make spróbuje ją wykonać. Aby mógł to zrobić musi być spe-
łniona lista wymagań, co pociągnie za sobą realizację wszystkich reguł wy-
mienionych na tej liście. Akcje opisane wyrażeniami zawierającymi odwołania
do stałej są odpowiednio rozwijane, np. akcja $(CC) $(OFLAGS) primitive pri-
mitive.c jest rozwijana do gcc -Wall -o primitive primitive.c. Niektóre reguły nie
są powiązane z regułą all (w przykładzie służą do usuwania plików, które w
danej chwili nie są potrzebne). Wywołujemy je według schematu: make
nazwa_reguły (np. make clean).
Do usuwania błędów możemy użyć debuggera gdb, aby się nim posłużyć musi-
my dodać flagę -g do wywołania kompilatora, a następnie wywołać polecenie:
gdb nazwa, gdzie nazwa oznacza nazwę pliku wykonywalnego. Debugger
umożliwia procę w trybie interaktywnym. Oto lista najważniejszych instrukcji
dostępnych w tym programie:
break ustawia pułapkę w wybranym wierszu programu np. break 6,
clear usuwa pułapkę z określonego wiersza np. clear 6,
delete usuwa wszystkie pułapki,
print wypisuje wartość zmiennej, np. print liczba,
step wykonuje jeden wiersz programu,
next jak wyżej, ale wchodzi do funkcji,
run uruchamia program, musi być wykonana przed step i next. Należy
także pamiętać o ustawieniu pułapki w odpowiednim wierszu.
continue kontynuuje wykonanie programu, po tym jak został on prze-
rwany po napotkaniu pułapki.
Zadania:
1. Uruchom program vimtutor i zapoznaj się z działaniem edytora VIM.
2. Napisz program typu hello world w języku C i skompiluj go. Usuń wszelkie
ostrzeżenia pojawiające się podczas kompilacji.
7
3. Napisz własny plik makefile i przetestuj działanie polecenia make.
4. Napisz program zawierający prostą funkcję i pętlę for . Skompiluj go z opcją -g
i prześledz jego wykonanie za pomocą gdb (skorzystaj z pomocy w tym
programie, wydając polecenie help).
8
Wyszukiwarka
Podobne podstrony:
SO2 instrukcja 4 Kolejki komunikatów
SO2 instrukcja 4
SO2 instrukcja 8
SO2 instrukcja 9
SO2 instrukcja 5
SO2 instrukcja 2 Procesy i sygna éy
SO2 instrukcja 7
SO2 instrukcja 6 Pamięć dzielona
SO2 instrukcja
SO2 instrukcja 3 Łącza komunikacyjne, nienazwane i nazwane
więcej podobnych podstron