Emacs
| Ten artykuł od 2010-03 wymaga uzupełnienia źródeł podanych informacji. Informacje nieweryfikowalne mogą zostać zakwestionowane i usunięte. Aby uczynić artykuł weryfikowalnym , należy podać przypisy do materiałów opublikowanych w wiarygodnych źródłach. |
| Emacs | |
| Edytor tekstu | |
| Logo programu |
|
| Interfejs programu |
|
| Producent | Projekt GNU |
| Pierwsze wydanie | 1976 |
| Aktualna wersja stabilna | 23.4 / 29 stycznia 2012 [1] |
| Licencja | GNU GPL |
| www.gnu.org/software/emacs/ | |
Emacs to zaawansowany edytor tekstu .
Spis treści |
[ edytuj ] Wprowadzenie
Pierwotna wersja Emacsa została napisana w 1974 roku przez programistę z MIT-u , 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.
[ edytuj ] 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] .
[ edytuj ] 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 być wywołanie (interacive)).
[ edytuj ] 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 |
[ edytuj ] 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ś 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] .
[ edytuj ] 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) to skrótów klawiszowych, ułatwiające prace z plikami w tym języku.
[ edytuj ] 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] .
[ edytuj ] 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] .
[ edytuj ] 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 C-3 (wywołująca funkcję split-window-horizontally) natomiast do dzielenia w pionie służy sekwencja C-x C-2 (funkcja split-window-vertically), do usunięcia aktualnego okna służy sekwencja C-x C-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] .
[ edytuj ] 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] .
[ edytuj ] 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.
[ edytuj ] Zobacz też
Przypisy
- ↑ Emacs 23.4 released ( ang. ). 2011-01-29. [dostęp 2011-02-26].
- ↑ 2,0 2,1 2,2 2,3 2,4 2,5 GNU Emacs Manual ( ang. ).
- ↑ B. Lewis, D. LaLiberte, R. Stallman : GNU Emacs Lisp Reference Manual .
[ edytuj ] Linki zewnętrzne
|
||||||||||||||||
Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

