• Nie Znaleziono Wyników

Poznań, 9 kwietnia 2015 roku

N/A
N/A
Protected

Academic year: 2021

Share "Poznań, 9 kwietnia 2015 roku"

Copied!
4
0
0

Pełen tekst

(1)

Poznań, 9 kwietnia 2015 roku

Emacs

Emacs to zaawansowany edytor tekstu.

Wprowadzenie

Pierwotna wersja Emacsa została napisana w 1974 roku przez programistę z MIT, Richarda Stallmana jako zestaw makr dla innego edytora o nazwie TECO (Emacs = Editor MACroS). W roku 1984 Stallman zaczął pisać nową wersję Emacsa, GNU Emacs, który stał się pierwszym programem projektu GNU. W rok później ukazała się wersja GNU Emacs 15.34, która była już oficjalnie dystrybuowana. 23 lutego 2008 roku Richard Stallman napisał na emacs-devel, iż (po około 20 latach opieki nad programem) chciałby powierzyć projekt Stefanowi Monnier i Chongowi Yidong.

Emacs jest przykładem wolnego oprogramowania, a nie jedynie oprogramowania open source.

Emacs składa się z niewielkiego i wydajnego jądra napisanego w C, zawierającego też

interpreter dialektu Lispu zwanego Emacs Lisp, oraz z ogromnej nadbudowy napisanej w Lispie i wykonywanej przez to jądro. Dzięki takiej konstrukcji Emacs jest elastyczny, a jego zachowanie można w pełni kontrolować przy użyciu Emacs Lispa.

Rozszerzeniami typowymi dla edytorów programisty, są podświetlanie i automatyczne

formatowanie kodu źródłowego, oraz integracja z make, systemami kontroli wersji i kompilatorami.

Mniej typowe zastosowania to przeglądanie katalogów, obsługa urządzeń typu modemy, aż do zupełnie nietypowych, jak: graficzna przeglądarka stron WWW, klient poczty elektronicznej, gry komputerowe czy implementacja ELIZY.

Istnieją dwie wersje Emacsa wywodzące się z pierwotnego kodu, znane jako GNU Emacs i XEmacs, oraz ogromna liczba edytorów i innych narzędzi wzorowanych na Emacsie.

Dzięki dodatkowym narzędziom etags i ctags istnieje możliwość szybkiego "poruszania" się po dużych projektach programistycznych.

Tryby uruchomieniowe

GNU Emacs może być uruchamiany w dwóch trybach - tekstowym i graficznym. Uruchamiając Emacsa w Terminalu bez środowiska X uruchomi się tryb tekstowy. Natomiast wewnątrz X Window uruchomi się tryb graficzny. Istnieje także możliwość uruchomienia Emacsa w trybie tekstowym w emulatorze terminala w Interfejsie graficznym. Istnieje także możliwość

uruchomienia Emacsa jako serwera, w którym wszystkie klienty współdzielą te same bufory[2].

Sekwencje i skróty klawiszowe

W Emacsie każde pojedyncze wciśnięcie klawisza lub sekwencji klawiszy wywołuje funkcję napisaną w języku Emacs Lisp. W większości trybów pojedyncze wciśnięcie klawisza powoduje wywołanie funkcji self-insert-command, która wstawia pojedynczy znak do bufora[3]. Oprócz podstawowych skrótów klawiszowych istnieją także sekwencję rozpoczynające się od C-x (Control + X) lub C+c. Skrót M-x (znak meta lub alt) umożliwia wywołanie dowolnej funkcji w Emacs Lispie, która została utworzona z możliwością wywołania interaktywnego (wewnątrz funkcji musi

(2)

być wywołanie (interacive)).

Przykładowe skróty klawiszowe

Poniższa tabela zawiera kilka podstawowych skrótów klawiaturowych i sekwencji oraz ich standardowe wiązania do funkcji w Emacs Lispie.

Funkcja Skrót

klawiszowy Opis

forward-char C-f Przesunięcie o jeden znak do przodu.

backward-char C-b Przesunięcie o jeden znak do tyłu.

backward-line C-p Przesunięcie o jedną linie do góry.

forward-line C-n Przesunięcie o jedną linie w dół.

forward-word M-f Przesunięcie o słowo do przodu.

search-word C-s Szukanie słowa w buforze.

scroll-up C-v Przesunięcie o jeden ekran do góry

scroll-down M-v Przesunięcie o jeden ekran w dół

undo C-/ lub C-x

u Cofnięcie ostatniej zmiany.

keyboard-quit C-g Zaniechanie ostatniej komendy.

fill-paragraph M-q Wyrównanie tekstu do lewej krawędzi.

find-file C-x C-f Odwiedzenie pliku (otworzenie lub

stworzenie nowego pliku).

save-buffer C-x C-s Zapis aktualnego bufora.

write-file C-x C-w Zapisz jako...

save-buffers-kill-emacs C-x C-c Wyjście z Emacsa.

set-marker C-

[space]/C-

@

Zaznaczenie tekstu, które chcesz skopiować czy wyciąć.

cut C-w Wycięcie zaznaczonego tekstu.

copy M-w Skopiowanie zaznaczonego tekstu.

paste C-y Wklejenie tekst z schowka.

kill-buffer C-x k Zamknij bufor, jeżeli nie ma podanej

nazwy zostanie zamknięty obecny bufor.

save-buffers-kill-terminal C-x C-c Zamknięcie Emacsa

Tryby Emacsa

Są to biblioteki programistyczne które dodają jakąś dodatkową funkcjonalność do edytora, zazwyczaj uruchamiane są automatycznie dla określonego typu pliku. Istnieją dwa typy trybów Emacsa główny (Major) i pomniejszy (Minor). Istnieją tryby główne dla większości języków programowania które m.in. kolorują składnie, dodają nowe funkcje, nowe kombinacje klawiszy lub inteligentne ''wcinanie'' kodu źródłowego. Pomniejsze tryby służą zazwyczaj do dodania jakiejś

(3)

jednej funkcji np. wyświetlanie zegarka czy liczby wierszy. Dla pojedynczego bufora może być wywołany tylko jeden tryb głównych oraz wiele pomniejszych[2].

Hooks

Służą one do wywoływania odpowiedniego kodu w momencie uruchomienia określonego trybu, np.

wewnątrz Hooka dla trybu głównego lisp-mode (uruchamianego dla programów w języku Lisp) można utworzyć dodatkowe wiązania funkcji (ang. binding) do skrótów klawiszowych, ułatwiające prace z plikami w tym języku.

Bufory

W Emacsie wszystkie operacje wykonywane są na buforach. Bufor jest to zazwyczaj plik na dysku, który można wyświetlić wewnątrz okna, który znajduje się w pamięci Emacsa. Buforem może być też zawartość katalogu, strona internetowa czy gra[2].

Mini bufor

Jest to obszar na dole okna wewnątrz którego wyświetlane są wyniki działania komend oraz służy do wprowadzania dodatkowych argumentów dla funkcji[2].

Okna

Oknem (ang. Window) w Emacsie określa się obszar, w którym wyświetlany jest Bufor.

Nie należy go mylić z oknem programu uruchomionego w trybie GUI. Wewnątrz pojedynczego okna programu można wyświetlać wiele okien z wyświetlanym buforem. Do dzielenia okna w poziomie służy sekwencja C-x 3 (wywołująca funkcję split-window-horizontally) natomiast do dzielenia w pionie służy sekwencja C-x 2 (funkcja split-window-vertically), do usunięcia aktualnego okna służy sekwencja C-x 0 (funkcja delete-window). W Emacsie można mieć uruchomione dwa okna wyświetlające ten sam bufor - modyfikacja bufora w jednym oknie natychmiastowo uaktualnia drugi bufor. Okna mogą mieć różny rozmiar. Istnieje możliwość uruchomienia emulatora terminala wewnątrz okna[2].

Ramki

Ramką (ang. Frame) określa się okno programu w trybie graficznym w którym może być wiele okien. W trybie tekstowym wyświetlana jest naraz tylko jedna ramka[2].

Etags i ctags

Są to programy, które generują indeksy definicji wewnątrz plików źródłowych. Po wygenerowania pliku Tags dla danego kodu źródłowego, składającego się z wielu plików, można używać skrótu M-.

(Meta lub alt i kropka) do przechodzenia z miejsca gdzie wywołano funkcję do miejsca, w którym ta funkcja została zdefiniowana.

Zobacz też

(4)

Zobacz publikację na Wikibooks:

Emacs Kościół Emacsa Richard Stallman GNU

Emacs Lisp Przypisy

Emacs 24.1 released (ang.). 2012-06-10. [dostęp 2012-06-10].

GNU Emacs Manual (ang.).

B. Lewis, D. LaLiberte, R. Stallman: GNU Emacs Lisp Reference Manual.

Linki zewnętrzne

Strona internetowa GNU Emacs EmacsWiki

Cytaty

Powiązane dokumenty

ZAINTERESOWANIA USŁUGOWE – przydatne do pracy z ludźmi i techniką, w zawodach, w których świadczy się różne usługi ludziom, głównie w zakresie żywienia, opieki osobistej,

Odnotował także, że przy cerkwi znajdowała się drewniana dzwonnica, na której było zawieszonych 5 dzwonów.. Należy sądzić, że nie przeprowadzono koniecznych

Tworzenie segmentu pamięci podobne jest do tworzenia pliku – segment jest plikiem specjalnym.. int shm_open(char *name, int oflag, mode_t

Koszty wejścia 0,00% Wpływ kosztów, które inwestor ponosi przy rozpoczynaniu inwestycji Koszty wyjścia 0,00% Wpływ kosztów wyjścia

Związek Miast Polskich z siedzibą w Poznaniu informuje o zamiarze przeprowadzenia wstępnych konsultacji rynkowych, których przedmiotem będzie uzyskanie przez Zamawiającego informacji

SPŁYW - szybkie przemieszczanie się masy gruntowej bez wytworzenia wyraźnej powierzchni poślizgu przy współudziale wody np.. spływy

Powstał z tego niesamowity dokument albo też reportaż obejmujący kilkaset znakomitych fotografii.. W tej chwili są [one] historią ogromnej dzielnicy, a właściwie

Kościół (Kościoły) jest (są) nośnikami pamięci także jako instytucje - w ich strukturze odbijają się bowiem nawarstwienia kolejnych wieków.. W dzisiejszym kształcie